Не удается найти регион в RegionManager (используя PRISM) - PullRequest
4 голосов
/ 29 января 2010

Я пишу приложение в Prism. У меня есть пользовательский элемент управления и содержит два элемента <ContentControl>. Обе области имеют назначенные им регионы. Пользовательский контроль размещается в Window, который отображается с использованием ShowDialog().
Я добавляю одно из моих представлений в регион, используя обнаружение представлений, а другое я хочу внедрить представление в его регион. Представление discovery работает нормально. Однако, когда я пытаюсь сослаться на другой регион, чтобы добавить представление, я получаю исключение:

KeyNotFoundException
Менеджер региона не содержит MyRegion регион.

Когда я просматриваю регионы RegionManager, ни тот, которому я пытаюсь внедрить представление, не существует, ни тот, который использует открытие вида.

Имеет ли значение, что я нахожусь в другом окне для Shell? Я думал, что был только один RegionManager, но должно быть два, чтобы открытие моего представления все еще работало ...? Или это потому, что у меня есть два новых региона, которые создаются позже в жизненном цикле приложений? Или это потому, что новые регионы не находятся внутри моего MainRegion?

EDIT:
После некоторого копания выглядит, что Region создан, но не может найти экземпляр RegionManager, поэтому он не добавляется. Любые подсказки?

1 Ответ

7 голосов
/ 29 января 2010

Отсортировано сейчас. Мне нужно было зарегистрировать регионального менеджера в конструкторе моего класса докладчика.
Таким образом, регионы в моем новом окне могут найти моего глобального менеджера регионов.

RegionManager.SetRegionManager(view as DependencyObject, regionManager);

...