在我的Windows 8應用裏面,我試圖改變FlipView的一個DataTemplate中TextBlock的文字...訪問控件FlipView聯合國XAML
我FlipView的DataTemplate(簡體...):
<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錯誤:「{」未將對象引用設置到對象的實例。「}」 所以也沒有找到我的文本塊...
感謝
嘿被它爲你工作? – loop