双向数据绑定:更新文本框不更新绑定属性

本文关键字:更新 绑定 属性 文本 数据绑定 | 更新日期: 2023-09-27 18:27:02

我将UserControl的文本框数据绑定到一个属性,如下所示。

<TextBox Name="txtData" Text="{Binding MyData, Mode=TwoWay}"/>

但是,当我在用户控件的txtData文本框中输入一些文本后,单击托管用户控件的页面上的"提交"按钮时,userControl.MyData将返回null。除了通过TextChanged事件,我还能做些什么将txtData.text值分配给属性?

双向数据绑定:更新文本框不更新绑定属性

TextBox.Text发生更改时,您希望根据注释更新userControl.MyData

从绑定的角度来看,TextBox.Text是目标,MyData是源,所以严格地说,这是OnWayToSource绑定(到源=>到MyData),所以不需要实现INotifyPropertyChanged。但这不是问题所在。

按照当前编写绑定的方式,MyData属性希望在TextBoxDataContext上找到,是这样吗?你可以修复数据上下文,或者可能使用其他绑定源,例如ElementName或RelativeSource——如果没有看到更多的xaml,很难说。

您还可以考虑在绑定上设置UpdateSourceTrigger=PropertyChanged