我有TreeView
一个HierarchicalDataTemplate
(如下所示)绑定到数据集中的数据关系。父节点代表父零件,子节点代表构成父零件的零件。在某些情况下,用户将选中父级的复选框,以表明他们正在用所有子级替换整个部分。此时将出现一个文本框,供他们输入父级的新零件编号。到目前为止,我有这个工作。
我需要帮助的是,在选中父复选框时隐藏子项。我一直在从触发器路径处理这个问题,但我似乎无法从HierarchicalDataTemplate.Triggers
. 也许这是不可能的?
<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>