C# 双向数据绑定到属性下的控件

C# 双向数据绑定到属性下的控件,c#,winforms,C#,Winforms,我有一个自定义类,我在其中实现了INotifyPropertyChanged,我可以很高兴地将它绑定到表单上文本框的.Text属性,并使数据流双向流动 我现在正试图通过一个属性,通过usercontrol上的文本框实现同样的功能: public string MyProperty { get { return MyPropertyTextBox.Text; } set { MyPropertyTextBox.Text = value; } } 我可以将类绑定到Usercontr

我有一个自定义类,我在其中实现了
INotifyPropertyChanged
,我可以很高兴地将它绑定到表单上文本框的
.Text
属性,并使数据流双向流动

我现在正试图通过一个属性,通过usercontrol上的文本框实现同样的功能:

public string MyProperty
{
    get { return MyPropertyTextBox.Text; }
    set { MyPropertyTextBox.Text = value; }
}
我可以将类绑定到Usercontrol上的
MyProperty
,以便设置值

但是,我如何获得它,以便在编辑文本框时,将更改反馈给我的类

编辑:

不确定我是否解释得很好+这是WinForms,不是WPF

文本框本身没有绑定,我希望文本框的“TextChanged”事件也触发usercontrol属性的“PropertyChanged”。我自己做了一个概念验证测试,让它工作起来,然后在我的项目中实现了它


不过,感谢您的建议。

当您从textbox直接准备就绪时。Text,将直接检测到任何更改,无需额外代码。

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}" 

ASP.NET,Windows forms+1,但这必须与实际使用INotifyPropertyChanged实现结合起来,正如paqogomez的回答所提到的那样。+1但如果在编辑文本时需要传播更改,则必须与Alan的回答结合起来。否则,我相信只有当文本框失去焦点时才会发生变化。