0

ツリービューにバインドされたオブジェクトを持っているビューがあります。オブジェクトには (さまざまな種類の) コレクションが多数あるため、階層型テンプレートを CompositeCollection と共に使用してツリービューに表示しています。

次に、ツリービューの selectedItem にバインドされたテキスト ボックスを取得しました。ここでは、selectedItem を XML にシリアル化し、編集用にテキスト ボックスに表示しています。

これまでのところすべて順調です。ただし、私が抱えている大きな問題は、読み取り専用であるため、ツリービューの SelectedItem プロパティで双方向データバインディングを使用できないことです。

ツリービューにバインドされているオブジェクトとテキスト ボックスの編集を同期させるにはどうすればよいですか?

4

2 に答える 2

0

SelectedItem 自体で双方向のデータバインディングを行う必要はないと思います。バインドされたオブジェクトのクラスで、シリアル化された文字列を返し、setオブジェクトを適切に変更するプロパティを公開する必要があります。これは、オブジェクト全体を扱うよりも簡単です。

于 2011-06-10T16:24:39.847 に答える
0

XML ストリームは SelectedItem ノードのプロパティとして表す必要があり、何らかの方法で TextBox をそれにバインドする必要があります。SelectedItem は読み取り専用ですが、それが参照するオブジェクトはそうではありません。そのプロパティを双方向にバインドすると、編集に正しく影響を与えることができるはずです。これは、使用している DataTemplates および HierarchicalDataTemplates で行われます。これらは、TreeView で表現しているノードの基になるデータ表現にバインドされているためです。

于 2011-06-10T16:34:10.720 に答える