gpt4 book ai didi

wpf - Prism:如何在区域中注入(inject) View 模型实例?

转载 作者:行者123 更新时间:2023-12-04 16:49:29 25 4
gpt4 key购买 nike

在使用 Prism 数周后,我经历了各种导航方法。但是还有一件事是我无法使用 Prism“开箱即用”实现的:导航到 View 模型实例。导航到 View 模型或 View 真的很容易 类型 但实际上没有办法导航到真正的 View 模型 实例 .

例如,当我有一个不同 View 模型实例(也不同类型)的列表时,如果选择了一个并且我想在我的内容区域中显示它,我无法实现它,除非我通过事件聚合发布更改并且我不想要那个,因为这让我在我的内容区域中坚持一种观点。我想要做的是将 View 模型实例注册到一个区域中,以便 View 可以从数据模板动态加载。

实际上,我通过创建一个 RegisterViewModelWithRegion 作为 RegionManager 的扩展方法来实现这一点,它运行良好,但它并不是很整洁,因为我必须手动查找我的应用程序资源,加载 View ,附加我的 View 模型实例,然后添加我所在地区的景色。

我真的觉得我在架构中遗漏了一些东西,因为这种做法对我来说似乎很明显,但显然我找不到任何人有同样的担忧。

您的帮助和经验将不胜感激。
谢谢。

最佳答案

在与 Prism 团队讨论后,我发现实际上,使用 Region.Add(object view)在区域中注入(inject) View 模型的方法是完全可以的。它将给出完全相同的结果(除了一些小情况)。

我检查了 ItemsControlRegionAdapter,它最终所做的就是

regionTarget.ItemsSource = region.Views;
regionTarget作为目标控件(例如 ListBox)和 region.Views属性是您注入(inject)区域的对象。

当然,感谢您的帮助,瑞秋 :-)

关于wpf - Prism:如何在区域中注入(inject) View 模型实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7009516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com