TreeView
には、HierarchicalDataTemplate
(以下に示す)があり、データセットのデータ関係にバインドされています。親ノードは親パーツを表し、子は親を構成するパーツを表します。場合によっては、親レベルのチェックボックスをチェックして、パーツ全体をすべての子要素で置き換えることを示します。この時点で、親の新しい部品番号を入力するためのテキストボックスが表示されます。これまで私はそれを働かせてきました。HierarchicalDataTemplate.Triggersを使用してItemTemplateのコントロールに影響を与える
私が助けが必要なのは、親チェックボックスがオンになっているときに子供を隠すことです。私はトリガーパスからこれに近づいてきましたが、HierarchicalDataTemplate.Triggers
のトリガーからItemTemplateのコントロールを参照することはできません。おそらくそれは不可能でしょうか?
<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>