【发布时间】: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