har*_*nis 0 navigation prism regions
在Prism 5中,在带有以下导航请求的mvvm应用程序中的Unity中,我获得了System.Object而不是视图。
RegionManager.RequestNavigate(RegionNames.MainMenuRegion,
new Uri("../../AdminModule/Views/MainMenuView", UriKind.Relative))
Run Code Online (Sandbox Code Playgroud)
导航请求位于“登录”模块中,而目标视图位于另一个模块中,该模块在引导程序中“按需”加载。AdminModule的初始化类仅包含一个简单的Initialize()。MainMenuView和MainMenuViewModel是基本的。我测试了它们,它们工作正常T
在这一点上,我试图将其简化,并让导航请求创建MainMenuView并进行必要的注册,以使我知道该视图的哪个实例为目标。
我将以下代码添加到LoginViewModel中,最后在MainMenuRegion的视图列表中得到AdminModule.Views.MainMenuView的两个实例,一个实例是类型对象,另一个实例是AdminModule.Views.MainMenuView类型。仅在container.resolve语句上调用AdminModule.Views.MainMenuView构造函数。
container.RegisterType<MainMenuView, MainMenuView>("MainMenuView");
view = container.Resolve<MainMenuView>();
RegionManager.Regions[(RegionNames.MainMenuRegion)].Add(view, "MainMenuView");
Run Code Online (Sandbox Code Playgroud)
知道我在做什么错吗?谢谢。
听起来好像视图未注册。所有视图都针对字符串键注册为类型对象。如果找不到密钥,则Unity将仅返回一个新对象。因此,请确保在您的模块(IModule实现)中,您正在用容器注册视图。
例如
container.RegisterType<Object, MainMenuView>("MainMenuView");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |