HierarchicalDataTemplateを使用して、チェックボックスを使用してクラスをTreeViewにバインドしています。コードは正常に機能しており、すべてが正常に表示されていますが、ツリービューでアイテムの子のリストを取得できるようにしたいと思います。
チェックボックスをクリックしたときに、親ノードと子ノードを選択できるようにしたい。チェックボックスをラップすることになっているTreeViewItemにアクセスできる場合、これは簡単に実行できますが、チェックボックスのParentプロパティはnullです...HierarchicalDataTemplateにマップされているクラスにしかアクセスできないようです。
<TreeView Margin="12" Name="trv1" SelectedItemChanged="trv1_SelectedItemChanged">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type src:Location}" ItemsSource="{Binding Path=Sublocations}">
<CheckBox Content="{Binding Name}" Tag="{Binding}" IsChecked="{Binding IsChecked}" Click="checkBox_Click"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type src:Sublocation}" ItemsSource="{Binding Path=Children}">
<CheckBox Content="{Binding Name}" Tag="{Binding}" IsChecked="{Binding IsChecked}" Click="checkBox_Click"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type src:Child}">
<CheckBox Content="{Binding Name}" Tag="{Binding}" IsChecked="{Binding IsChecked}" Click="checkBox_Click"/>
</DataTemplate>
</TreeView.Resources>
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="IsSelected" Value="{Binding IsChecked}"/>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>