【问题标题】:Access to controls inside a FlipView un XAML访问 FlipView 和 XAML 中的控件
【发布时间】:2013-07-21 21:16:49
【问题描述】:

在我的 Windows 8 应用程序中,我试图更改 FlipView 的 DataTemplate 中的文本块的文本...

我的 FlipView 数据模板(简化...):

        <FlipView.ItemTemplate>
            <DataTemplate>
                <TextBlock x:Name="test" />
            </DataTemplate>
        </FlipView.ItemTemplate>

我试过这个解决方案:How do I access a control inside a XAML DataTemplate?

所以我的 .cs :

        var _Container = flipView.ItemContainerGenerator.ContainerFromItem(flipView.SelectedItem);

        var _Children = AllChildren(_Container);


         var myTextBlock= _Children.OfType<TextBlock>().FirstOrDefault(c => c.Name.Equals("test"));

         myTextBlock.Text = "test";

用方法:

    public List<Control> AllChildren(DependencyObject parent)
    {
        var _List = new List<Control>();
        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
        {
            var _Child = VisualTreeHelper.GetChild(parent, i);
            if (_Child is Control)
                _List.Add(_Child as Control);
            _List.AddRange(AllChildren(_Child));
        }
        return _List;
    }

但我收到 NullReferenceException 错误:“{”对象引用未设置为对象的实例。”}” 所以它没有找到我的文本块...

谢谢

【问题讨论】:

  • 嘿,它对你有用吗?

标签: xaml controls datatemplate


【解决方案1】:

你好朋友,我检查了你的代码..我发现是一个非常不明显的错误..这与 Control 关键字有关..实际上它是您想要搜索的控件类型你的翻转视图..像文本块,文本框等......你必须像这样改变你的 AllChilderen 函数,然后一切都会正常工作..

public List<TextBlock> AllChildren(DependencyObject parent)
    {
        var _List = new List<TextBlock>();
        int j = VisualTreeHelper.GetChildrenCount(parent);
        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
        {
            var _Child = VisualTreeHelper.GetChild(parent, i);
            if (_Child is TextBlock)
                _List.Add(_Child as TextBlock);
            _List.AddRange(AllChildren(_Child));
        }
        return _List;
    }

希望对你有所帮助..

【讨论】:

  • 但是我对 FlipView 中的 gridView 做了同样的事情,我又遇到了同样的问题 :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 2013-04-28
  • 1970-01-01
相关资源
最近更新 更多