我已经使用Winforms和C#制作了一个测试应用程序。 2文本框的Text属性绑定到相同的custome属性。 自定义属性实现事件PropertyChangedEventHandler,如this post中所述。
问题在于,然后我修改了一个文本框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";
不更新控件?