【问题标题】:Wpf treeview selectedItem databindingWpf treeview selectedItem 数据绑定
【发布时间】:2011-09-12 14:56:15
【问题描述】:
我有一个视图,其中我有一个对象绑定到树视图。该对象有许多(不同类型的)集合,所以我使用带有 CompositeCollection 的分层模板在树视图中显示它们。
然后我得到了一个绑定到树视图的 selectedItem 的文本框。在这里,我将 selectedItem 序列化为 XML 并将其显示在文本框中以进行编辑。
到目前为止一切顺利。但是,我遇到的一个大问题是我不能将 2 路数据绑定与树视图的 SelectedItem 属性一起使用,因为它是只读的。
如何让文本框编辑与绑定到树视图的对象保持同步?
【问题讨论】:
标签:
wpf
treeview
2-way-object-databinding
【解决方案1】:
我认为您不需要对 SelectedItem 本身进行双向数据绑定,您应该在绑定对象的类中公开一个属性,该属性返回序列化字符串,并在set 适当地修改对象。这应该比将对象作为一个整体来处理更容易。
【解决方案2】:
您的 XML 流必须表示为 SelectedItem 节点上的属性,并且您的 TextBox 必须以某种方式绑定到该属性。 SelectedItem 是只读的,但它引用的对象不是。如果您对该属性进行双向绑定,您应该能够正确影响您的编辑。这将在您使用的 DataTemplates 和 HierarchicalDataTemplates 中完成,因为它们绑定到您使用 TreeView 表示的节点的底层数据表示。