【发布时间】:2020-11-12 05:46:53
【问题描述】:
我有一个要绑定到两个源(源 A 和源 B)的文本框。 我想在更新时显示源 A,在用户提供输入时显示源 B。 我不想同时显示来自两个来源的数据。
我尝试使用优先级绑定,但这似乎没有按我想要的方式工作。
<TextBox>
<TextBox.Text>
<PriorityBinding>
<Binding ElementName="Features_ComboBox" Path="SelectedItem.Address" Mode="OneWay" />
<Binding Path="UserAddress" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay"/>
</PriorityBinding>
</TextBox.Text>
<TextBox>
理想情况下,文本框将在“Features_ComboBox”选定项更改时更新,但如果用户在文本框中写入,它将更新“UserAddress”属性(因此是模式设置)。
相反,“Features_ComboBox”会更新文本框,但 UserAddress 永远不会更新。
我也尝试过使用 MultiBinding,但不太成功。 任何想法如何做到这一点?
【问题讨论】:
-
恐怕您必须为此使用行为。具有您的 2 个绑定源的行为,并且该行为只是直接将它们的值分配给您的文本框。
-
是的,看来我需要使用一种行为——我不熟悉行为的工作原理,我的下一步是弄清楚这一点。感谢您为我指明正确的方向。
标签: c# wpf data-binding binding