Я пытаюсь использовать MVVM-подход для создания приложения Winforms.
Я обработал экземпляры BindingSource
как модели представления. Каждая форма, UserControl или часть формы имеет собственную модель представления, заключенную в собственный экземпляр BindingSource
.
Через несколько месяцев, когда одна из форм начала расти, я заметил, что загрузка форм стала "заметно" медленной. После некоторого исследования я развернул все модели просмотра из BindingSource
и привязал их прямо к элементам управления.
Viewmodels реализует INotifyPropertyChanged
, для сбора я использовал типы BindingList
или ObservableCollection
.
После удаления всех BindingSource
из формы проблема с загрузкой исчезла.
Теперь вопрос: нужно ли нам использовать BindingSource
в winforms?
Например, я не использую функцию Master-Detail, потому что мы загружаем только необходимые данные для списка, а для деталей мы снова загружаем дополнительные данные.