我使用 Winforms 和 C# 制作了一个测试应用程序。2个文本框的Text属性绑定到同一个custome属性。自定义属性实现了一个事件 PropertyChangedEventHandler,如本文所述。
问题是,然后我修改了一个文本框 Taxt 值,另一个也被修改了。但如果我修改它们绑定的属性,那不是真的。
这是代码:
public partial class Form1 : Form
{
private string _text;
public string TextProperty
{
get
{
return _text;
}
set
{
_text = value;
InvokePropertyChanged();
}
}
#region implement event
private event PropertyChangedEventHandler PropertyChanged;
private void InvokePropertyChanged([CallerMemberName]string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#endregion implement event
public Form1()
{
InitializeComponent();
textBox1.DataBindings.Add("Text", this, "TextProperty", false, DataSourceUpdateMode.OnPropertyChanged);
textBox2.DataBindings.Add("Text", this, "TextProperty", false, DataSourceUpdateMode.OnPropertyChanged);
}
private void button1_Click(object sender, EventArgs e)
{
TextProperty = "text is not changin in textBox Controls";
}
}
有人可以帮助理解这个问题。这里为什么TextProperty = "text is not changin in textBox Controls";
不更新控件?