Uco*_*dia 3 navigation wpf prism mvvm viewmodel
使用Prism几周后,我经历过各种导航方法.但是仍然有一件事我无法通过Prism"开箱即用"实现:导航到视图模型实例.导航到视图模型或视图类型非常容易,但实际上无法导航到真实的视图模型实例.
例如,当我有一个不同的视图模型实例的列表(也是不同的类型)时,如果选择了一个并且我想在我的内容区域中显示它,除非我通过事件聚合发布更改而我不能实现它,否则我无法实现它想要这样,因为这让我在我的内容区域中遇到了一种观点.我想要做的是将视图模型实例注册到一个区域,因此视图可以从数据模板动态加载.
实际上我通过创建RegisterViewModelWithRegion作为RegionManager的扩展方法来实现这一点,它运行良好,但它不是很整洁,因为我必须手动查找我的应用程序资源,加载视图,附加我的视图模型实例然后添加对我所在地区的看法.
我真的觉得我在建筑中遗漏了一些东西,因为这种做法对我来说显而易见,但显然我找不到任何有同样关注的人.
非常感谢您的帮助和经验.谢谢.
在与Prism团队进行一些讨论后,我发现实际上,使用该Region.Add(object view)方法在区域中注入视图模型是完全可以的.它将给出完全相同的结果(除了一些小的情况).
我检查了ItemsControlRegionAdapter,它最终做的就是
regionTarget.ItemsSource = region.Views;
Run Code Online (Sandbox Code Playgroud)
regionTarget作为目标控件(例如ListBox)和region.Views属性是您注入区域的对象.
当然,感谢您的帮助Rachel :-)
| 归档时间: |
|
| 查看次数: |
3848 次 |
| 最近记录: |