использование шаблона mvvm в приложении wpf - PullRequest
0 голосов
/ 01 декабря 2010

Я новичок в wpf, и я разрабатываю клиент-серверное приложение, используя wpf для пользовательского интерфейса. у меня есть один вид - посмотреть модель, даталист и модель связи мой вид и модель представления будут формировать один пользовательский элемент управления следующие мои сомнения:

  1. если я храню свой список данных внутри модели представления, как другая модель представления может получить к ней доступ
  2. если я сохраню свой список данных в приложении, чтобы любой вид мог получить к нему доступ, сможет ли моя модель представления обновить его с помощью привязки
  3. будет хорошим дизайном, если моя модель представления будет напрямую вызывать мою модель связи или я должен оставить класс-посредник между ними.

1011 * спасибо *

Sarika

1 Ответ

0 голосов
/ 07 декабря 2010

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

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

Будет ли каждая модель представления получать новую ссылку на эту коллекцию, или все они обращаются к одной и той же коллекции, будет зависеть от вашего варианта использования, но до тех пор, пока коллекция предоставляется как свойство вашего DataContext (обычно вашей модели представления) После этого вы сможете привязать коллекцию для отображения и обновления из представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...