【发布时间】:2015-03-12 21:26:01
【问题描述】:
在 WPF 中使用数据绑定时,如果将Mode 属性设置为TwoWay,则可以通过设置UpdateSourceTrigger 属性来控制更新源属性的时刻。对于目标 -> 源更新流,这种情况是可能的。但是如何控制源 -> 目标更新流的相同内容?我找不到等效的属性。
例如,假设我的窗口上有两个文本框,我想绑定两个文本框的 Text 属性。 XAML 可能如下所示:
<TextBox
Name="txt1"
Text="{Binding ElementName=txt2, Path=Text, Mode=TwoWay,
UpdateSourceTrigger=LostFocus}"
/>
<TextBox
Name="txt2"
/>
当用户在txt1 TextBox 中输入文本时,txt2 Textbox 的Text 属性将随着Text 属性的变化而更新,就像我在txt1 上实现了TextChanged 事件一样。
但是,当用户在txt2 TextBox 中输入文本时,txt1 文本框的Text 属性将在txt2 TextBox 失去焦点后更新,因为UpdateSourceTrigger 属性设置为LostFocus,就像我有实现了 LostFocus 事件。
在源属性控制失去焦点后,WPF 数据绑定是否有可能更新目标属性?在我们的示例中:应该对上面的 XAML 代码做什么,所以 txt2 TextBox 的 Text 属性只会在 txt1 TextBox 失去焦点后更新,而不是在其 Text 属性更改后更新?
谢谢!
【问题讨论】:
标签: wpf xaml 2-way-object-databinding data-binding