Каковы преимущества использования источника привязки с bindinglist<бизнес-объект> в качестве источника данных?

Я могу напрямую привязать свой элемент управления DataGridView к списку привязок моих бизнес-объектов, установив свойство DataSource. Мой бизнес-объект реализует INotifyPropertyChanged, поэтому DGV обновляется, когда новый элемент добавляется в список привязок или обновляется существующий.

Что касается работы с отдельными записями, я могу привязать свой бизнес-объект к текстовым полям и другим соответствующим элементам управления.

Я также могу получить от BindingList и создать класс CustomBindingList для реализации необходимых методов IBindable, как описано в ссылке ниже.: http://msdn.microsoft.com/en-us/library/aa480736.aspx

В качестве альтернативы я видел, что люди рекомендуют использовать BindingSource. Источник данных BindingSource — это бизнес-объект, а источник данных DGV — BindingSource.

В любом случае, использование BindingSource не предлагает мне:

  1. Фильтрация (Фильтр не работает ). Реализация должна быть предоставлена ​​мной.
  2. Сортировка и поиск не работают. Реализация должна быть предоставлена ​​мной.

Итак, почему рекомендуется подход BindingSource?

Расширенное изображение :Я новичок в концепциях OOPS и C #. Работа с приложениями базы данных. Винформс. До сих пор использовался только подход DataSet/DataTable. Теперь пытаюсь создать и использовать свои собственные пользовательские классы.

Обычно имеют форму Master/Detail. Когда я нажимаю строку сведений в DGV, я хочу редактировать эту запись в отдельном окне. Поэтому мне нужно получить дескриптор элемента списка, представленного этой строкой в ​​DGV. Попытка найти решение для этого привела меня к этому моменту и этому сомнению.

Учитывая то, что я хочу сделать, какой подход лучше и почему?

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

15
задан Micha Wiedenmann 27 July 2017 в 11:31
поделиться