J'ai un TreeView
avec un HierarchicalDataTemplate
(illustré ci-dessous) lié à une relation de données dans un ensemble de données. Les nœuds parents représentent les parties parents et les enfants représentent les parties qui composent le parent. Dans certains cas, l'utilisateur va cocher la case au niveau parent pour indiquer qu'il remplace la partie entière avec tous ses enfants. À ce stade, une zone de texte apparaîtra pour qu'ils entrent le nouveau numéro de pièce pour le parent. Jusqu'à présent, j'ai ce travail.Utilisation de HierarchicalDataTemplate.Triggers pour affecter les contrôles du ItemTemplate
Ce dont j'ai besoin d'aide, c'est de cacher les enfants lorsque la case parent est cochée. J'ai approché ceci du chemin de déclenchement, mais je ne peux pas sembler faire une référence à aucun des contrôles dans le ItemTemplate d'un déclencheur dans le HierarchicalDataTemplate.Triggers
. Peut-être que ce n'est pas possible?
<HierarchicalDataTemplate ItemsSource="{Binding MyParts}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Description}" />
<CheckBox x:Name="MyCheckBox" IsChecked="{Binding ReplaceParent}"></CheckBox>
<TextBox x:Name="NewParentPartNumberTextBox" Text="{Binding NewPartNumber}" Visibility="Collapsed"></TextBox>
</StackPanel>
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding ChildPartNumber}" />
<TextBox Text="{Binding NewChildPartNumber}" />
</StackPanel>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate.Triggers>
<Trigger SourceName="MyCheckBox" Property="IsChecked" Value="True">
<Setter TargetName="NewParentPartNumberTextBox" Property="Visibility" Value="Visible"/>
</Trigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>