私は、アイテムごとItemsSourceに作成するTreeView にバインドしています。CheckBoxxaml は次のとおりです。
<TreeView x:Name="ReasonTreeView" Height="Auto" Background="Transparent"
BorderThickness="0" IsTabStop="False"
ItemsSource="{Binding Path=AnswerOptions}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type QSB:Answer}" ItemsSource="{Binding Path=AnswerOptions}">
<StackPanel Orientation="Horizontal">
<CheckBox Margin="0,5"
IsChecked="{Binding Path=IsSelected}"
IsEnabled="{Binding Path=Value,
Converter={StaticResource ReasonValueToEnabledConverter}}"
Visibility="{Binding Path=AnswerOptions,
Converter={StaticResource ParentNodeVisConverter}}" />
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
私のアプリケーションでは、これらの複数のインスタンスを作成します。のインスタンスによってはTreeView、ユーザーが選択できないように無効にする必要がありますが、コードCheckBoxes内の個々の項目にアクセスする方法がわかりません。HierarchicalDataTemplate
しばらく見回した後、私が考えることができる唯一のことはTreeView、xaml の代わりにコード ビハインドで全体を構築することですが、むしろそれに頼る必要はありません。他にできることはありますか?
私の要点を明確にするために、また説明のために、これは基本的に私ができるようにしたいことです(疑似コードで):ReasonTreeView.ItemsSource[5].IsEnabled = false;
のインデックス5でCheckBox(およびその中の他のコントロール)を無効にしますHierarchicalDataTemplateItemTreeViewItemsSource
さらに情報が必要な場合はお知らせください