Как перевести списки в модели MVVM в ObservableCollections в View-Model? - PullRequest
0 голосов
/ 29 октября 2010

Я пишу пример приложения в WPF, и я хотел бы, чтобы модель можно было многократно использовать в приложении WinForms, поэтому я хотел бы исключить из него такие вещи, как INotifyChanged и DependencyObjects.

Если у класса Model есть List какого-либо другого класса Model, как мне реализовать соответствующую ObserveableCollection в View-Model, чтобы я мог поддерживать свои привязки в актуальном состоянии?

Вариант использования для этого будет, если у меня есть объект модели Boss, у которого есть список сотрудников. Я создаю объект Boss, но загружаю список сотрудников асинхронно. Как узнать, когда список сотрудников был найден и заполнен? Я хотел бы сохранить загрузочный код внутри модели.

Полагаю, я хотел бы подвести итог тому, что я спрашиваю: как правильно взаимодействовать модель-модель, пока модель-модель отражает эти изменения?

1 Ответ

3 голосов
/ 29 октября 2010

Ваша модель должна будет предоставлять уведомления об изменениях. Вы можете сделать это в независимом режиме, используя INotifyPropertyChanged и INotifyCollectionChanged. Вопреки вашему вопросу, это не специфичные для WPF интерфейсы. Они находятся в System.ComponentModel, а не в пространстве имен WPF или сборке.

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

...