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

时间:2012-03-08 00:38:08

标签: c# wpf silverlight

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

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

但是当我在usercontrol的txtData文本框中输入一些文本后,单击托管用户控件的页面上的“提交”按钮时,userControl.MyData会返回null。除了txtData.text事件之外,我还可以将TextChanged值分配给属性吗?

1 个答案:

答案 0 :(得分:1)

根据您的评论,您希望在userControl.MyData更改时更新TextBox.Text

从绑定角度来看,TextBox.Text是目标,而MyData是来源,所以严格来说这是OnWayToSource绑定(来源=&gt;到MyData) - 所以应该有无需实施INotifyPropertyChanged。但这不是问题。

当前编写绑定的方式,MyData属性希望在DataContext的{​​{1}}上找到 - 是这样吗?您可以修复数据上下文或可能使用其他一些绑定源,例如ElementName或RelativeSource - 很难说没有看到更多的xaml。

您也可以考虑在绑定上设置TextBox