2011-02-16 88 views
2

我创建了一个类添加数字:为什么这些DataBindings不更新?

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; } 
    } 
} 

并创建文本框的结果结合:

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

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

    public Form1() 
    { 
     InitializeComponent(); 

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

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

在这种情况下,MessageBox显示正确的值。但textBox1仍包含旧值。 为什么DataBindings无法在此代码中工作?

PS。对我弱的英语感到抱歉。

回答

3

因为你从来没有告诉过它。
数据绑定基础架构无法神奇地检测到您的属性更改时。

您需要实现INotifyPropertyChanged接口并在任何属性更改时提升PropertyChanged事件。

+0

我执行INotifyPropertyChanged之后,接下来我该做什么。通过使用事件和使用数据绑定更新值的差异 – mibtrex 2011-02-16 02:49:57