c# - 属性更改未更新绑定控件属性
问题描述
我使用 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";
不更新控件?
解决方案
推荐阅读
- python-3.x - Openpyxl 3在MsExcel中保存自定义单元格格式后计算空行
- git - 无法解决“错误:Git 服务器扩展不可用”。用于 Pytorch jupyter 笔记本
- javascript - 从数组中删除最后一项并在反应中重新渲染失败
- perl - 在从 spreadshit.pl 第 8 行提取数据的连接 (.) 或字符串中使用未初始化的值
- netsuite - Netsuite:如何从选项卡中获取字段值?
- google-cloud-platform - 有没有办法在 Google Cloud Platform 中安排 Cloud Shell 命令?
- database - Laravel 数据透视表插入数组
- swift - 如何快速将一个视图控制器值发送到另一个视图控制器表视图?
- sql - 诊断 DELETE 上的引用完整性错误的原因
- linux - 在 Windows bat 文件中运行 cygwin 命令