Как получить список регионов в RegionManager в PRISM?

#c# #mvvm #c#-4.0 #prism #prism-4

#c# #mvvm #c #-4.0 #prism #prism-4

Вопрос:

Я получил следующий код :

открытый класс MyModule: IModule { частный IRegionManager mRegionManager { получить; установить; }

     public CMBaseTable(IRegionManager regMan)
    {
        mRegionManager = regMan;
    }

    public void Initialize()
    {
        mRegionManager.RegisterViewWithRegion("MainRegion",typeof(MyView));
        var vs = mRegionManager.Regions["MainRegion"].Views;//<--- I get an exception here
    }
}
  

В строке

var vs = mRegionManager.Регионы[«MainRegion»].Число просмотров;

Я получу исключение, в котором говорится: KeyNotFoundException : «Региональный менеджер не содержит регион MainRegion».

Но я уверен, что MainRegin определен, и другие модули добавили в него представления.

Ответ №1:

Вы всегда можете заглянуть в исходный код. RegionCollection реализует параметр IEnumarable, поэтому вы можете выполнять итерации по коллекции или просто использовать предоставленную функцию public bool ContainsRegionWithName(string regionName) .

Комментарии:

1. Спасибо ba__friend , покопавшись в источнике, нашел ответ!! Оболочка должна быть создана перед итерацией throw mRegionManager. Регионы[].

2. Привет, Эхсан, что ты имеешь в виду, говоря, что оболочка должна быть создана перед выполнением итерации по регионам RegionManager?