Wpf treeview selectedItem数据绑定

时间:2011-06-10 15:46:33

标签: wpf treeview 2-way-object-databinding

我有一个视图,我有一个绑定到树视图的对象。该对象有许多集合(不同类型),因此我使用带有CompositeCollection的层次结构模板在树视图中显示它们。

然后我得到了一个绑定到treeview的selectedItem的文本框。在这里,我将selectedItem序列化为XML并将其显示在文本框中进行编辑。

到目前为止一切顺利。但是,我遇到的一个大问题是我不能使用树形视图的SelectedItem属性进行双向数据绑定,因为它是只读的。

如何干净地保持文本框编辑与绑定到树视图的对象同步?

2 个答案:

答案 0 :(得分:0)

我认为您不需要在SelectedItem本身上进行双向数据绑定,您应该在绑定对象的类中公开一个属性,该属性返回序列化字符串,并在set后适当地修改对象。这应该比处理整个对象更容易。

答案 1 :(得分:0)

您的XML流必须在SelectedItem节点上表示为属性,并且您的TextBox必须以某种方式绑定到该属性。 SelectedItem是只读的,但它引用的对象不是。如果您对该属性进行双向绑定,则应该能够正确地影响您的编辑。这将在您正在使用的DataTemplates和HiearchicalDataTemplates中完成,因为它们绑定到您使用TreeView表示的节点的基础数据表示。