Общая архитектура приложения с приложением PRISM - PullRequest
1 голос
/ 17 августа 2011

Я создаю приложение WPF и планирую использовать библиотеку шаблонов PRISM.Почти все мои представления будут отображать или изменять список.Где я должен разместить этот объект и как передать его своим взглядам.Должен ли я иметь только один модуль, создать объект в списке в этом объекте и затем передать объект в представления при создании представлений, прежде чем вводить их в различные области?Или есть лучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 17 августа 2011

Prism - очень полезная библиотека шаблонов для того, что вы пытаетесь сделать. Я советую вам посмотреть здесь http://compositewpf.codeplex.com/, вы можете найти много ответов для архитектуры Prism и MVVM. Вы можете определить сколько угодно модулей, но если представления похожи на отображение и изменение списка, лучший способ - определить, что меняется от одного представления к другому. Например, привязка или свойства или имена меток, а также генерация этих разных представлений из шаблона T4 (или даже если вы хотите переопределить их все один за другим). Это будет один и тот же модуль, но с другой привязкой, например.

Если вы хотите обмениваться информацией между несколькими моделями представления (независимо от того, в каком регионе / модуле они находятся), вы можете реализовать общую службу, которая хранит одну коллекцию List, и внедрить эту службу в каждую модель представления. Затем заставьте каждую модель представления обращаться к данным в коллекции через службу, чтобы при выполнении операции CRUD над коллекцией изменения отражались во всех моделях представления, а затем вы могли передавать все свои представления.

Если вы собираетесь использовать этот общий сервис и экспортировать его как не общий экспорт, один и тот же экземпляр вашего ObjectRepository будет совместно использоваться всеми вашими моделями представления. При обновлении свойства List в вашем сервисе вы можете заставить его использовать все модели представлений. Если вы будете использовать Unity, используйте единственный экземпляр.

Подробнее о совместном обслуживании http://msdn.microsoft.com/en-us/library/ff921122%28v=PandP.40%29.aspx#sec7

1 голос
/ 17 августа 2011
  1. Вам нужен только один модуль.Идея модулей состоит в том, чтобы разделить различные части приложения, например, управление заказами и управление клиентами.
  2. Следуя терминологии MVVM, список является вашей моделью.Просто назовите это ListModel.Эта ListModel должна быть обернута одной моделью представления.Это может быть названо ListViewModel
  3. Все представления имеют одно представление, соответствующее модели представления.Все эти модели представлений имеют ссылку на ListViewModel.ListViewModel предоставляется через свойство для представлений, поэтому представления могут ссылаться на ListViewModel, используя путь привязки DataContext.ListViewModel.Когда все ваши представления связаны с вашими моделями представления, не имеет значения, когда ваша модель заполнена данными.
...