&tag(WPF,TreeView); *目次 [#c03067ab] #contents *参考情報 [#zfa2d597] -[[TreeView クラス (System.Windows.Controls):http://msdn.microsoft.com/ja-jp/library/system.windows.controls.treeview.aspx]] *画面の状態 [#b724e03c] **初期状態で開いた状態にする [#kcc9364a] ItemContainerStyleで指定する。 -ItemContainerStyleで指定する。 #pre{{ <TreeView> <TreeView.ItemContainerStyle> <Style TargetType="TreeViewItem"> <Setter Property="IsExpanded" Value="True"/> </Style> </TreeView> }} **選択されたアイテムを取得・設定する [#x4c2f995] -[[SelectedItem in a WPF Treeview - Stack Overflow:http://stackoverflow.com/questions/1000040/selecteditem-in-a-wpf-treeview]]によるとTreeViewのSelectedItemプロパティはreadonlyなのでxamlでBindingできない。OnSelectedItemChangedを使ってやるしかないらしい。 -もしくはItemContainerStyleで指定する。ItemsSourceにバインドしているオブジェクトのIsSelectedプロパティで判断する。 #pre{{ <TreeView ItemsSource={Binding Persons}> <TreeView.ItemContainerStyle> <Style TargetType="TreeViewItem"> <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" /> </Style> </TreeView> }} *その他Tips [#zdd34ba5] **TreeViewItemを検索する [#e7b4d55e] -ItemsSourceにバインディングしている場合、treeView.SelectedItemはバインディングしているオブジェクトになる(TreeViewItemではない)。TreeViewItemをもってくるにはめんどくさい処理が必要。 -[[How to: Find a TreeViewItem in a TreeView:http://msdn.microsoft.com/en-us/library/ff407130.aspx]] **SelectedItemがBindingできない [#f127bbdd] [[SelectedItem in a WPF Treeview - Stack Overflow:http://stackoverflow.com/questions/1000040/selecteditem-in-a-wpf-treeview]]によるとTreeViewのSelectedItemプロパティはreadonlyなのでxamlでBindingできない。OnSelectedItemChangedを使ってやるしかないらしい。 **プログラムで選択したい[#h503f490] -[[How to programmatically change the SelectedItem in a WPF TreeView:http://askernest.com/archive/2008/01/23/how-to-programmatically-change-the-selecteditem-in-a-wpf-treeview.aspx]]によるとめんどくさい手法が必要。 -[[Quantum Bit Designs » Blog Archive » Programmatically Selecting an Item in a TreeView:http://blog.quantumbitdesigns.com/2008/07/22/programmatically-selecting-an-item-in-a-treeview/]] **選択をキャンセルしたい [#pf741ac5] -[[How can I cancel a user's WPF TreeView click? - Stack Overflow:http://stackoverflow.com/questions/542392/how-can-i-cancel-a-users-wpf-treeview-click]] -[[Cancelling Treeview.SelectedItemChanged : The Official Microsoft Silverlight Site:http://forums.silverlight.net/forums/p/209478/492600.aspx]] -[[How can we cancel SelectedItemChanged?:http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/e802b77d-5133-4b8a-ac86-998162c9c5dd]]