RegionManager.Regions никогда не содержит мои области ChildWindow - PullRequest
4 голосов
/ 08 ноября 2011

Я боролся некоторое время, пытаясь заставить это работать.По сути, у меня есть приложение Silverlight, использующее комбинацию MVVM / PRISM / Unity.

Моя оболочка состоит из двух областей RootContent и RootMenu.Мои RegionManager.Regions могут видеть эти две области просто отлично, и приложение работает правильно.

Проблема начинается, когда один из моих просмотров внутри RootContent открывает ChildWindow, он содержит больше двух областей, следующим образом:

<ContentControl Region:RegionManager.RegionName="WOFSCustomerLookup" />
<ContentControl Region:RegionManager.RegionName="WOFSCustomerView"  />

ViewModel этого представления, который имеет этот XAML выше, даже наследуя и правильно разрешая, коллекция IRegionManager.Regions не содержит этих двух новых областей выше, только RootContent и RootMenu.

Дополнительная информация

Вот как называется мое ChildWindow (оно вызывает "View"):

ChildWindow editor = this.container.Resolve<WorkOrderFieldServiceEditor>();
editor.show();

И этоэто конструктор моей ViewModel:

public WorkOrderFieldServiceViewModel(IUnityContainer container, IRegionManager regionManager)
{
    this.container = container;
    this.regionManager = regionManager;

    // Still have just the two Root regions:
    // this.regionManager.Regions[]
}

Я что-то пропустил?

1 Ответ

1 голос
/ 09 ноября 2011

Уверен, проблема в том, что вы не отображаете представление WorkOrderFieldServiceEditor через Prism, а просто получаете его экземпляр через контейнер и затем вызываете метод Show непосредственно в нем.Итак, Prism на самом деле не участвует.Когда основная оболочка создается с помощью загрузчика, области, определенные в представлении, затем создаются в диспетчере регионов.Итак, вам нужно посмотреть, как вы переходите к всплывающему окну с помощью Prism и не вызываете метод Show напрямую.

Извлечение файла RegionPopupBehaviors.cs в справочном приложении StockTrader.

http://msdn.microsoft.com/en-us/library/ff921074(v=PandP.40).aspx

...