Я использую DataTemplate
, где я объявил два Buttons
, и они по умолчанию невидимы. Теперь я хочу сделать их Visible
в коде, основанном на каком-то определенном состоянии, но я не могу найти эти элементы управления.Невозможно найти элементы управления внутри DataTemplate в SilverLight5
Ниже мой код:
XAML:
<ItemsControl x:Name="SynonymsItemsControl" ItemsSource="{Binding Synonyms}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Margin="0,5,0,0" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="SynonymsStackPanel">
<CheckBox x:Name="SynonymsChkBx" Content="{Binding Display}" Margin="10,0,0,0" />
WANT TO FIND THESE TWO BUTTONS
<Button x:Name="AddSynonymsBtn" Margin="525, 0, 0, 0" ToolTipService.ToolTip="Add Synonyms" Visibility="Collapsed">
<Image Source="/Images/AddSynonyms.png" Height="24"/>
</Button>
<Button x:Name="CancelSynonymsBtn" Margin="600, 0, 0, 0" ToolTipService.ToolTip="Cancel Synonyms" Visibility="Collapsed">
<Image Source="/Images/CancelSynonyms.png" Height="24"/>
</Button>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
КОД-ЗА:
Я смог найти ItemControl, делая это,
System.Windows.Controls.ItemsControl itemControl = (from sp in selectedTreeViewItem.GetVisualDescendants().OfType<System.Windows.Controls.ItemsControl>()
where sp.Name == "SynonymsItemsControl"
select sp).FirstOrDefault();
Когда Я хочу найти кнопки, которые объявлены внутри этого ItemsControl
->DataTemplate
, речь идет, как Null
Button AddSynonymsBtn = (from btn in itemControl.GetVisualDescendants().OfType<Button>()
where btn.Name == "AddSynonymsBtn"
select btn).FirstOrDefault();
Так мне интересно, что мне нужно сделать, чтобы найти ItemsControl
вообще? если да, то почему я не могу найти эти кнопки?
Я также пробовал var findControl = temControl.ItemContainerGenerator.ContainerFromIndex(index);
но такой же результат (Null
).