是否可以将两个源属性绑定到一个控件属性?

使用WPF,是否可以通过单向绑定将两个源属性绑定到一个控件属性(即textbox.text)? 我想让用户在文本框中输入一个值,并将该值推送到源datacontext中的两个不同属性。 我的解决方法是创建一个虚拟属性,让setter手动设置两个值。

您可以使用绑定代理的类型,如本博文中所述:

http://www.11011.net/wpf-binding-properties

然后按照以下步骤操作:

  1. 使用x:Name = tb定义TextBox
  2. 将TextBox.Text绑定到Prop1
  3. 添加一个代理元素,其中包含In =“{Binding Text,ElementName = tb}”,Out =“{Binding Prop2}”(不在TextBox中但在其旁边)

这样,您将使Prop1和Prop2与tb.Text同步。

您需要将MultiBinding与IMul​​tiValueConverter一起使用。 请参阅文档中的示例