Я использую PRISM в приложении SilverLight 4.У меня проблема, когда представления, зарегистрированные в некоторых регионах, не отображаются.
При загрузке модуля при запуске я регистрирую некоторые представления в регионах следующим образом:
RegionManager.RegisterViewWithRegion("MyRegion1", typeof(IMySubView1));
RegionManager.RegisterViewWithRegion("MyRegion2", typeof(IMySubView2));
У меня есть представлениереализуя интерфейс IMyView, в котором xaml имеет два элемента управления контентом с областями, определенными в сетке, например:
<ContentControl Regions:RegionManager.RegionName="MyRegion1" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Grid.Row="0" Grid.RowSpan="1"/>
<ContentControl Regions:RegionManager.RegionName="MyRegion2" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Grid.Row="1" Grid.RowSpan="1"/>
Я пробовал два разных метода для добавления представления в основной регион.Оба добавляют представление, и отображаются основные элементы, такие как кнопки, но области, определенные в представлении, не заполняются связанными представлениями.
Метод 1:
object obj = _container.Resolve<IMyView>();
IRegion mainRegion = _regionManager.Regions["MainViewRegion"];
IRegionManager scoped = mainRegion.Add(obj, "test", true);
mainRegion.Activate(obj);
// Enabling the following call, it will fail saying the region MyRegion1 does not exist. Feels like it should?
// IRegion myRegion = scoped.Regions["MyRegion1"];
Метод 2:
object obj = _container.Resolve<IMyView>();
_regionManager.AddToRegion("MainViewRegion", obj);
_regionManager.Regions["MainViewRegion"].Activate(obj);
Такое ощущение, что регионы, определенные в файле xaml, не регистрируются, и из-за этого зарегистрированные представления не отображаются.
MainViewRegion определен в оболочке вTabControl как это:
<TabControl Margin="8,0,8,8" Regions:RegionManager.RegionName="MainViewRegion">
Любые предложения по решению моей проблемы будут с благодарностью!