&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 &#187; Blog Archive &#187; 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]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS