私は、アイテムごとItemsSource
に作成するTreeView にバインドしています。CheckBox
xaml は次のとおりです。
<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
(およびその中の他のコントロール)を無効にしますHierarchicalDataTemplateItem
TreeView
ItemsSource
さらに情報が必要な場合はお知らせください