WPF TreeView SelectedItem Databinding
-
26-10-2019 - |
質問
ツリービューにバインドされたオブジェクトを持っているビューがあります。オブジェクトには(異なるタイプの)多数のコレクションがあるため、compositycollectionを備えた高解像度テンプレートを使用してツリービューに表示しています。
次に、TreeViewのselectedItemにバインドされたテキストボックスを手に入れました。ここでは、selectedItemをXMLにシリアル化し、編集のためにテキストボックスに表示します。
これまでのところすべて良い。ただし、私が抱えている大きな問題は、TreeViewのSelectedItemプロパティを使用して2ウェイデータビンディングを使用できないことです。
TreeViewにバインドされている自分のオブジェクトと同期してテキストボックスの編集をきれいに保つにはどうすればよいですか?
解決
SelectedItem自体について双方向データビンディングを行う必要があるとは思わない。 set
オブジェクトを適切に変更します。これは、オブジェクト全体を扱うよりも簡単なはずです。
他のヒント
XMLストリームは、selectedItemノードのプロパティとして表現する必要があり、テキストボックスはどういうわけかそれにバインドする必要があります。 selectedItemは読み取り専用ですが、それが指すオブジェクトはそうではありません。そのプロパティを双方向に結合する場合、編集に正しく影響を与えることができるはずです。これは、TreeViewで表されているノードの基礎となるデータ表現にバインドされているため、使用しているDateTemplatesおよびHiearchicalDatatatemplatesで行われます。