我创建了一个用于添加数字的类:
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。抱歉我的英语不好。
答案 0 :(得分:3)
因为你从未告诉过它 数据绑定基础结构无法神奇地检测您的属性何时更改。
您需要实现INotifyPropertyChanged
接口,并在任何属性发生更改时引发PropertyChanged
事件。