【问题标题】:Binding same property to two paths in WPF将相同的属性绑定到 WPF 中的两个路径
【发布时间】:2012-08-20 11:31:45
【问题描述】:

我有一个图形控件,它有两种类型的实体:节点和边(链接)。 图形控件公开了几个属性,即

  • myGraphContol.SeletedNode
  • myGraphControl.SelectedLink

节点和边都有一些用于可视化的配置文件数据,因此它们都实现了一个名为 IProfile 的接口。

配置文件数据将在相邻的 ContentControl 中可视化,该 ContentControl 将选择适当的模板。 这工作得很好:

<ContentControl VerticalAlignment="Stretch" ContentTemplate="{Binding Source={StaticResource AllPropertiesTemplate}}" Content="{Binding Path=SelectedNode.Data,ElementName=myGraphContol}"/>

但是如何使它适用于另一个属性 SelectedLink.Data。基本上,内容控件必须与这两个属性绑定。用户将一次单击任何一个节点或边,并能够查看配置文件。 任何帮助将不胜感激。感谢阅读。

问候,

【问题讨论】:

  • 您可以使用多重绑定,但最好将您选择的项目通用化,以便选择的节点或边可以由相同的属性表示。
  • 您能否提供一个指向多绑定方式的指针。在多重绑定中,转换器是必须的。
  • 我看到右边的一些相关帖子对多重绑定的工作原理以及如何设置提供了很好的答案。它实际上与绑定相同,您只需向其添加多个绑定。这个网站有一个很好的例子,类似于你想做的事情。 switchonthecode.com/tutorials/wpf-tutorial-using-multibindings

标签: wpf mvvm binding multibinding


【解决方案1】:

ContentControl 只有一个 Content 元素,因此您可以:

  1. 将这两个属性嵌套在一个封装对象中或

  2. 创建具有两个(或更多)可绑定属性的自定义控件。

【讨论】:

  • 感谢您的回答,但这是第三方控件,我无法对其进行更改:(
猜你喜欢
  • 1970-01-01
  • 2014-06-07
  • 1970-01-01
  • 2010-11-01
  • 2019-08-15
  • 2012-11-11
  • 2016-02-28
  • 2017-09-14
相关资源
最近更新 更多