2


0

image:https://www.codeproject.com/KB/WPF/AdvancedCustomTreeViewLyt/AdvancedCustomTreeViewLayout_before.png [代替テキスト]

私は自分のアプリにTreeview(上記のように表示されています)を持っています、私はコレクションとそれを結合しました…​ 現在の問題は、デフォルトで* Colorodo を展開したときはいつでも Aspen *を選択する必要がある場合、つまり最初の項目を展開するたびにNodeが選択されることを意味します。

任意のアイデア/提案してください

2 Answer


6


残念ながら、あなたが発見したと確信しているように、 `+ treeViewInstance.SelectedItem +`プロパティは読み取り専用なので設定できません。

メモリから、各 `+ TreeViewItem `には_can_設定できる ` IsSelected +`プロパティがあります。 あなたはアイテムの展開/折りたたみをリッスンし、このプロパティを設定しようとします。 これを自分で試してみなければ、それがa)良い解決策であるかどうか、b)それがうまくいくかどうかはわかりません。

コレクション内のアイテムのコンテナである `+ TreeViewItem +`を取得するには

treeViewInstance.ItemContainerGenerator.ContainerFromItem(yourDataItem) as TreeViewItem;

もう1つのアイデア(私がする方法)は、ListBox / ListViewを使用して階層ビューを偽造することです。 ビューモデルのコントローラとアイテムを作成し、データをラップし、これを自分で管理します。 あなたがより多くの情報が欲しいならば、コメントを残してください、そして、私は助けるためにいくつかの例を掘り下げます。

HTH,

デニス


0


あなたが好きなものを選ぶ2つのapporchesがあります。 i)ItemTemplageSelectorを探る。確かではないが、それを使って作業することは可能かもしれない。

ツリー展開イベントまたはマウスキャプチャイベントのその他の方法では、現在のルートノードを取得してから、rootNode.child [0]のようなインデックスを持つその最初の子を選択します。 これをSelected TrueまたはIsfocusedに設定し、クリックすることを目的とした操作を選択するように感じます。