双向数据绑定到属性下的控件
本文关键字:控件 属性 数据绑定 | 更新日期: 2023-09-27 18:33:54
我有一个自定义类,我已经在其中实现了INotifyPropertyChanged
,我可以愉快地将其绑定到窗体上 TextBox 的 .Text
属性,并让数据流向两种方式。
我现在正在尝试通过属性在用户控件上使用文本框实现同样的事情:
public string MyProperty
{
get { return MyPropertyTextBox.Text; }
set { MyPropertyTextBox.Text = value; }
}
我可以将我的类绑定到用户控件上的MyProperty
,以便设置值。
但是,我如何获取它,以便在编辑文本框时将更改反馈给我的类?
编辑:
不确定我解释得很好+它是WinForms,而不是WPF。
文本框本身没有绑定,我希望文本框的"文本更改"事件也触发用户控件属性的"属性已更改"。为自己构建了一个概念验证测试,让它工作,然后设法在我的项目中实施它。
不过感谢您的建议。
将 OnPropertyChanged
方法添加到媒体资源中。 像这样:
private string _myPropertyText;
public string MyProperty
{
get { return _myPropertyText; }
set {
if(_myPropertyText != value)
{
_myPropertyText = value;
OnPropertyChanged("MyPropertyTextBox");
}
}
}
你没有在问题中提到 XAML,但正如@RetailCoder所指出的,你的 XAML 也需要正确设置,就像 Alan 的回答一样。
<TextBox Text="{Binding myProperty,UpdateSourceTrigger=PropertyChanged}"
如果希望在编辑时更新它,请使用此 xaml
<TextBox Text="{Binding myproperty,UpdateSourceTrigger=PropertyChanged}"
,而你直接从文本框准备好了。文本,任何更改都将被直接检测,无需额外代码