在Prism 5中,Unity,在MVVM应用中,并带有以下导航请求,我将获得System.Object而不是视图。
RegionManager.RequestNavigate(RegionNames.MainMenuRegion,
new Uri("../../AdminModule/Views/MainMenuView", UriKind.Relative))
导航请求位于登录模块中,目标视图位于Bootstrapper中"按需"加载的另一个模块中。AdminModule的初始化类仅包含一个简单的初始化()。Mainmenuview和MainmenuviewModel是基本的。我已经测试了它们,他们工作了O.K.T
我在这一点上试图使它变得简单,并让导航请求创建主体武器并执行任何必要的注册,以便我知道该视图的实例是针对的。
我在loginviewModel中添加了以下代码,最终我在我的MainmenureGion的视图列表中获得了两个实例。.mainmenuview。adminModule.views.mainmenuview构造函数唯一一次称为container.resolve语句。
container.RegisterType<MainMenuView, MainMenuView>("MainMenuView");
view = container.Resolve<MainMenuView>();
RegionManager.Regions[(RegionNames.MainMenuRegion)].Add(view, "MainMenuView");
知道我在做什么错吗?谢谢。
听起来您的视图未注册。所有视图均在字符串密钥上注册为类型对象。如果找不到密钥,Unity将仅返回一个新对象。因此,在您的模块(IMODULE实现)中,请确保您正在使用容器注册视图。
,例如
container.RegisterType<Object, MainMenuView>("MainMenuView");