WPF でプログラムによって項目を選択するにはどうすればよいですかTreeView
?ItemsControl
モデルではそれができないようです。
ベストアンサー1
この問題の正しい解決策をまだ探している人のために、以下を紹介します。これは、Code Project の記事「WPF TreeView Selection」のコメントで見つけたものです。http://www.codeproject.com/KB/WPF/TreeView_SelectionWPF.aspxDaWanderer による投稿。2008 年 11 月 25 日に Kenrae によって投稿されました。これは私にとってはうまくいきました。ありがとう、Kenrae!
彼の投稿は次のとおりです。
ツリーをたどる代わりに、独自のデータ オブジェクトに IsSelected プロパティを設定します (IsExpanded プロパティも推奨)。 TreeView の ItemContainerStyle プロパティを使用してツリーの TreeViewItems のスタイルを定義し、TreeViewItem のプロパティをデータ オブジェクトにバインドします。次のようになります。
<Style x:Key="LibraryTreeViewItemStyle"
TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded"
Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected"
Value="{Binding IsSelected, Mode=TwoWay}" />
<Setter Property="FontWeight"
Value="Normal" />
<Style.Triggers>
<Trigger Property="IsSelected"
Value="True">
<Setter Property="FontWeight"
Value="Bold" />
</Trigger>
</Style.Triggers>
</Style>
<TreeView ItemsSource="{Binding Path=YourCollection}"
ItemContainerStyle="{StaticResource LibraryTreeViewItemStyle}"
ItemTemplate={StaticResource YourHierarchicalDataTemplate}/>