我有2个模块 在模块A中:
public void Initialize()
{
this.RegionManager.RegisterViewWithRegion("MainRegion",typeof(uc_LogIn));
this.RegionManager.RegisterViewWithRegion("NavigatorRegion", typeof(uc_LogInNavigate));
if (Application.Current.Resources.Contains("MainContainer"))
Application.Current.Resources["MainContainer"] = this.Container;
else
Application.Current.Resources.Add("MainContainer", this.Container);
if (Application.Current.Resources.Contains("MainRegionManager"))
Application.Current.Resources["MainRegionManager"] = this.RegionManager;
else
Application.Current.Resources.Add("MainRegionManager", this.RegionManager);
}
在模块B的功能中:
private void OnLogout()
{
RegionManager regionManager = (RegionManager)Application.Current.Resources["MainRegionManager"];
var view = regionManager.Regions["MainRegion"].GetView("uc_LogIn");
}
视图"返回null。那么,如何在没有ViewName的RegionManager中获取视图。
OR
如何在RegisterViewWithRegion函数中设置ViewName?
答案 0 :(得分:0)
问题: 如何在没有ViewName的RegionManager中获取视图。
OR
如何在RegisterViewWithRegion函数中设置ViewName?
你得到" null"因为" MainRegion"那个时候没有任何活跃的视角。
var view = _regionManager.Regions["MainRegion"].ActiveViews;
您将只能查看该地区所有活动视图的集合。
但是我觉得你想问OnLogout()如何导航到Login视图(uc_Login)? 要导航到特定区域管理器,您可以这样做:
您可以在RegionManager上调用RequestNavigate方法,该方法允许您指定要导航的区域的名称。这个方便的方法获取对指定区域的引用,然后调用RequestNavigate方法,如上面的代码示例(https://msdn.microsoft.com/en-us/library/gg430861(v=pandp.40).aspx)所示。
regionManager.RequestNavigate("MainRegion",
new Uri("uc_LogIn", UriKind.Relative));