Зачем использовать IEditableCollectionView? - PullRequest
1 голос
/ 08 сентября 2011

У меня есть проект, который мне нужно запустить (благодаря тому, что сотрудник уволился с работы раньше срока).

Он работал в WPF.Интерфейс выглядел круто, но он так и не смог собрать данные из старых библиотек доступа к данным компании.(Переписать библиотеки DLL - это отличная идея, но она неосуществима в течение короткого времени, оставшегося до крайнего срока) Весь смысл был сбор данных!

Проект был брошен мне, но я 'Я не разработчик WPF.Мне сказали, чтобы он работал с WinForms, что я знаю.Через несколько часов у меня появился интерфейс WinForm, и он выглядит так же хорошо, как и версия WPF ... и я знаю, что он делает.В WPF задействован voo-doo, которого я еще не изучил.

В проекте WPF есть вещи, которые мне нужны, чтобы понять, что они делают, и у меня нет времени, чтобы полностью переделать все это.

Уровень бизнес-логики возвращает ObservableCollection интерфейсу WPF.

Интерфейс WPF принимает ObservableCollection и сохраняет его в CollectionViewSource, используя его параметр Source.

ОК, я сразу же думаю о DataGridView управлении и использовании параметра DataSource из него.

Я на пути?

Какой смысл был IEditableCollectionView?Это необходимо?А если нет, я должен просто удалить все ссылки на него?

Ответы [ 2 ]

2 голосов
/ 08 сентября 2011

ObservableCollection, CollectionViewSource и т. Д. Важны в схеме MVFM (MVC ... +) WPF. Вы можете удалить их, но вы можете использовать их в проекте WinForms. На самом деле может быть лучше сделать это, чтобы сохранить чистое разделение между пользовательским интерфейсом и данными.

Вы могли бы также держаться за них и использовать их в качестве «более стандартных» коллекций, что просто привело бы к небольшому количеству ненужных накладных расходов. А так как соблюдение вашего крайнего срока имеет первостепенное значение, это может быть путь.

1 голос
/ 08 сентября 2011

Наблюдаемая коллекция используется для того, чтобы другие элементы управления могли участвовать, когда коллекция добавляется, удаляется или обновляется.Это помогает синхронизировать весь пользовательский интерфейс.Что касается IEditableCollectionView, он вызывает событие INotifyPropertyChanged, так что элементы управления в форме WPF автоматически обновляются при обновлении свойства в коллекции.

Если вы делаете это в WinForms, вам просто нужно вызывать события, когда ваша коллекция изменилась.

...