Каков наилучший способ справиться с навигацией с помощью PRISM? - PullRequest
3 голосов
/ 12 марта 2010

Использование Prism - каков наилучший способ обработки навигации в приложении WPF? И как ты это применяешь? Есть ли лучшие практики?

В моем приложении сейчас используется агрегация событий. Любой элемент меню или другой элемент, который должен привести к навигации в программе, опубликует событие, и модуль, отвечающий за открытие представления, представленного опубликованным событием, сделает это. Это прекрасно работает, но я чувствую, что это не лучший способ справиться с навигацией с помощью Prism. Это?

1 Ответ

3 голосов
/ 12 марта 2010

Это такой же хороший метод, как и любой другой, по крайней мере в том, что касается Призмы. Один из способов, который я делал раньше, - это установить один Модуль / Класс в качестве вашего «навигационного брокера»; для приложений типа MDI я обычно называю это WindowManager из-за недостатка творчества. Этот парень будет введен с IRegionManager и IEventAggregator и начнет прослушивать любые события типа «Новое окно» или «Навигация до» и соответствующим образом изменять / создавать регионы. Если вы хотите стать немного умнее, вы можете начать использовать RegionManager с областями видимости:

http://msdn.microsoft.com/en-us/library/cc707903.aspx

http://blogs.msdn.com/erwinvandervalk/archive/2009/04/29/how-to-build-an-outlook-style-application-with-prism-v2-part-2.aspx

Основная проблема с этой тактикой (и с использованием аспектов агрегации событий в целом) заключается в том, что любые события CompositePresentationEvents, которые необходимо обработать несколькими модулями или, по крайней мере, «за пределами» модуля повышения, необходимо объявить в общем месте (Я обычно помещаю их в проект под названием Инфраструктура). Это мне не слишком нравится.

...