Наличие нескольких активных экземпляров с PRISM - PullRequest
0 голосов
/ 26 октября 2011

У меня есть приложение в PRISM, C #, и мне интересно, могу ли я сделать следующее:

В нижней части приложения есть панель кнопок, которая служит моей областью навигации. Пользователь может нажать на кнопку A, и панель инструментов модуля A. появится.

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

Он открывает модуль B и создает новый элемент в модуле B.

-> В данный момент открыто 2 экземпляра, страница сведений о модуле A и страница добавления модуля B. Я хочу, чтобы пользователь также визуально понял это, потому что будет «1» над кнопкой для модуля А.

Вопрос в том, (как) я могу сделать это с ПРИЗМОЙ.

ТЛ; др; Поддерживает ли PRISM несколько инстанцированных представлений? (это «управление» открытыми представлениями, поэтому вы можете выбрать, какое из представлений должно быть открытым.)

Я попытался найти это, но не смог найти ничего, связанного с этим (возможно, потому, что я не уверен, как это вызвать, поэтому не могу найти по нему: /)

Любая информация высоко ценится, спасибо за ваше время.

Ответы [ 2 ]

2 голосов
/ 26 октября 2011

Вот очень краткое введение о том, как это работает в Prism, включая ссылки на невероятно полезный раздел MSDN:

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

0 голосов
/ 28 октября 2011

Добавление к сообщению Джона.

Возможно, вы захотите использовать TabControl. Если вы поместите регион PRISM в TABCOntrol - вы сможете увидеть все экземпляры в виде вкладок.

Вы можете увидеть достойный пример с некоторыми XAML о том, как закрывать вкладки здесь: Сервис меню в приложении Prism CAL

Таким образом, на «изнутри» - PRISM будет иметь одноэлементные представления / модели представления, если вы по умолчанию экспортируете их с MEF. Если вы экспортируете эти части как NonShared - PRISM сохранит несколько версий одного и того же представления внутри контейнера (MEF или Unity). Однако с помощью кнопок - вы не получите конкретный экземпляр.

Итак, используйте TabControl в качестве контейнера следующим образом: Сервис меню в приложении Prism CAL

Или вы можете написать свой собственный адаптер региона и отслеживать там экземпляры.

...