Призма, предоставляющая модель для просмотра модели путаницы - PullRequest
0 голосов
/ 20 июня 2011

В настоящее время у меня есть довольно прямолинейное приложение, моя первая попытка MVVM с использованием классов Джоша Смита, и я пытался перенести его в Prism v4 с помощью Unity.Однако я, похоже, запутался в том, как на самом деле передавать данные моей модели в соответствующие модели представлений, когда они разделены в разных модулях.

Само приложение имеет коллекцию объектов Document, каждый из которых содержит ссылку на сторонний экземпляр API видео и набор метаданных для описания и аннотирования видео.

Я написал видеообработка элементов в отдельный модуль, который ожидает свои данные от IVideoService.Аналогичным образом документы будут предоставляться в другом модуле службой IDocumentservice, которая будет возвращать коллекцию документов, выбранный документ и т. Д.

Я ссылаюсь на экземпляр IDocumentService в Unity, поэтому он может быть разрешен любыммодуль.Однако я не вижу, как извлечь соответствующий IVideoService для отображения при изменении просматриваемого документа.Я не хочу включать какие-либо зависимости модуля документа в модуль видео, если это возможно, поэтому я предполагаю, что я просто регистрирую экземпляр IVideoService и публикую некоторое событие обновления ... так что обновления просмотров видеомодуля.

Однако этоРешение не сработало бы, если бы у меня была возможность отображать два или более документов одновременно.

В моем предыдущем приложении без призмы мои view-модели имели иерархию, которая отражала иерархию модели, и все было сделано с использованием привязки и шаблонов данных.

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

Любое просветление приветствуется!

С уважением

1 Ответ

0 голосов
/ 20 июня 2011

Как насчет вызова события, когда просматриваемый документ изменяется?Событие может передать соответствующий IVideoService как часть аргументов события.

...