Я хочу привязать список бизнес-объектов к элементу управления Winforms (DataGridview, ComboBox, e.t.c.).
Для этого есть несколько подходов:
Я могу создать классы-оболочки для бизнес-объектов и переопределить их реализацию метода ToString
. Это будет хорошо работать для методов ComboBox, ListBox Items.(Add|AddRange)
.
Но это не будет работать для DataGridView. Для настройки столбцов в режиме конструктора требуется ObjectDataSource.
Поскольку должны существовать ObjectDataSources (для DataGridViews) и классы-оболочки, я решил оставить только один подход. ObjectDataSource один.
Теперь у меня есть ObjectDataSources для привязки данных. Когда я использую мастер, он добавляет свойство к форме, которое я могу использовать следующим образом:
MyObjectDataSoure.DataSource = list-of-entities;
Заполняет базовый элемент управления winforms. Но я также могу назначить список сущностей непосредственно для свойства источника данных control, и совокупность будет такой же.
MyWinformsControl.DataSource = list-of-entities
Да, теперь у меня нет событий ObjectDataSource, но, может быть, я что-то более общее пропускаю? Следует ли мне избегать прослушивания событий winforms (выбор изменился, пользователь добавил строку) и использовать объекты источника данных?
Как лучше всего использовать источники данных об объектах и их событиях?
Заранее спасибо!