Почему эти DataBindings не обновляются? - PullRequest
2 голосов
/ 16 февраля 2011

Я создал класс для добавления чисел:

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 все еще содержит старое значение. Почему привязки данных не работают в этом коде?

PS. извините за мой слабый английский.

1 Ответ

3 голосов
/ 16 февраля 2011

Потому что вы никогда не говорили об этом.
Инфраструктура привязки данных не может волшебным образом обнаруживать изменения вашего свойства.

Вам необходимо реализовать интерфейс INotifyPropertyChanged и вызывать событие PropertyChanged при каждом изменении какого-либо свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...