双向数据绑定:更新文本框不更新绑定属性
本文关键字:更新 绑定 属性 文本 数据绑定 | 更新日期: 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
属性希望在TextBox
的DataContext
上找到,是这样吗?你可以修复数据上下文,或者可能使用其他绑定源,例如ElementName或RelativeSource——如果没有看到更多的xaml,很难说。
您还可以考虑在绑定上设置UpdateSourceTrigger=PropertyChanged
。