2012-03-08 157 views
0

我将UserControl的文本框数据绑定到属性,如下所示。双向数据绑定:更新不更新绑定属性的文本框

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

但是,当我点击提交,在txtData文本框的用户控件中,userControl.MyData返回null输入一些文字后,承载用户控件的页面上的按钮。我应该怎么做才能将txtData.text值分配给除TextChanged事件以外的其他房产?

+0

你确定这个绑定是正确的吗?如果你在用户控件的构造函数中设置了MyData的值,你会在文本框中看到它吗?如果是,请分享整个XAML。 – 2012-03-08 01:00:13

+0

不,它不是!我没有得到什么错误。 – devnull 2012-03-08 01:07:13

+0

阅读关于[数据绑定](http://msdn.microsoft.com/en-us/library/ms752347.aspx)首先,然后如果你没有线索... – 2012-03-08 01:16:29

回答

1

根据您的意见,当TextBox.Text更改时,您希望更新userControl.MyData

从结合透视TextBox.Text是目标和MyData是如此严格的说,这是一个OnWayToSource结合(源=>到迈德特)源 - 所以应该没有必要实施INotifyPropertyChanged。但这不是问题。

当前写入绑定的方式,MyData属性期望在TextBoxDataContext上找到 - 是这种情况吗?您可以修复数据上下文或可能使用其他绑定源,例如ElementName或RelativeSource - 很难说没有看到更多的xaml。

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

+0

是的,是这样。 'MyData'属性期望在'TextBox'的'DataContext'上找到 – devnull 2012-03-08 08:10:13