#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?