0

私のシナリオでは、ユーザーが TreeViewItem をダブルクリックして「編集」できるようにしたいと考えています。その場合、そのアイテムを所定の位置に展開し (TreeViewItems をその下にスライドさせると、レイアウトが変換されますか?)、選択したアイテムの代わりにフォームを表示および編集したいと考えています。だから、私の質問は、ダブルクリックされた項目の ItemTemplate を切り替えることでこれを達成できるかということです。もしそうなら、私はこれにアプローチする方法がわかりません。

TreeViewItems で動作する添付イベントをダブルクリックし、コールバックで TreeViewItem にアクセスできます。その時点でアイテムの ItemTemplate を最適に切り替えます。私の TreeView は、ItemTemplate と ViewModels の静的リソースで HierarchicalDataTemplate を使用して構築され、データをバックアップします。

このアプローチに関するガイダンスや、このシナリオを達成するためのその他の提案を歓迎します!

4

1 に答える 1

0

クリックされた の ItemTemplate を動的に変更できますTreeViewItem
呼び出しをDependencyObject.SetCurrentValue()
行い、変更前に保存する必要がある元のローカル値を復元することを忘れないでください。これに使用ReadLocalValue()します。
元のテンプレートを復元する条件を定義する必要があります (おそらく選択が変更されたとき)。

より MVVM の方法でタスクを達成することもできます。
添付プロパティIsDoubleClickedを追加し、対応する に対して True を設定するだけTreeViewItemです。
そして、プロパティに TreeViewItem のItemTemplateバインドのトリガーを追加しますIsDoubleClicked

于 2013-01-14T22:49:24.137 に答える