首页 > 解决方案 > 属性更改未更新绑定控件属性

问题描述

我使用 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";不更新控件?

标签: c#winformsproperty-binding

解决方案


推荐阅读