Привязка данных к объекту - как обновить объект / привязку? - PullRequest
4 голосов
/ 09 июня 2010

Я получил текстовое поле и использую привязку данных к объекту. Это прекрасно работает, пока я не попробую выбрать новый продукт:

product = new Product(id);
textbox.DataBindings.Add("Text", product, "ProductName");

// After user action:
product = new Product(newId); // <- the textbox isn't updated

Нужно ли очищать привязку данных и устанавливать ее заново после обновления продукта?

1 Ответ

8 голосов
/ 09 июня 2010

Короче говоря: Да, вам нужно восстановить DataBinding, потому что TextBox имеет ссылку на старый объект.

Но чтобы сделать это немного более надежным, вам, возможно, следует использовать BindingSource для вашей DataBinding. Чтобы заставить это работать, вы должны открыть свою форму в режиме конструктора.

  • Выберите ваш TextBox и откройте окно свойств
  • Просмотрите категорию Данные и щелкните крест слева от свойства (DataBindings)
  • Нажмите раскрывающуюся кнопку рядом со свойством Текст
  • В раскрывающемся списке выберите Добавить источник данных проекта
  • В мастере выберите Объект и в следующем типе вашего объекта

Теперь вы получите новый объект в вашей форме (например, productBindingSource ), который связан с текстом вашего TextBox. И последнее, но не менее важное: вы должны прикрепить свой объект, используя следующий код:

productBindingSource.DataSource = product;

Но также это решение не помогает против повторного связывания, но все, что вам нужно сделать сейчас:

product = new Product();
productBindingSource.DataSource = product;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...