为什么这些DataBindings不会更新?

时间:2011-02-16 02:31:52

标签: c# .net data-binding

我创建了一个用于添加数字的类:

public class Add 
{
    private int num1;
    public int Num1
    {
        get { return num1; }
        set { num1 = value; }
    }
    private int num2;
    public int Num2
    {
        get { return num2; }
        set { num2 = value; }
    }
    public int Result
    {
        get { return num1 + num2; }
    }
}

创建TextBox以将结果绑定到:

public partial class Form1 : Form
{
    Add add = new Add();

    public Form1()
    {
        InitializeComponent();

        textBox1.DataBindings.Add("text", add, "Result");
    }
... 

我通过捕获Click事件来更改属性:

private void Form1_Click(object sender, EventArgs e)
{
    add.Num1++;
    MessageBox.Show(add.Result.ToString());
} 

在这种情况下,MessageBox显示正确的值。但是textBox1仍然包含旧值。 为什么DataBindings在这段代码中不起作用?

PS。抱歉我的英语不好。

1 个答案:

答案 0 :(得分:3)

因为你从未告诉过它 数据绑定基础结构无法神奇地检测您的属性何时更改。

您需要实现INotifyPropertyChanged接口,并在任何属性发生更改时引发PropertyChanged事件。