首页 > 解决方案 > Splat 中的默认视图合同

问题描述

我在模块化 WPF 应用程序中使用 ReactiveUI:主应用程序使用 ViewModels 和 Views 动态加载 DLL。

resolver.RegisterViewsForViewModels(newAssembly);用来自动注册程序集中的所有视图。

现在,我想为某些视图模型添加只读视图。我想出了使用合同和 ViewModelViewHost.Contract 的想法 - 它应该可以完成工作。

有没有办法用合同标记视图,以便RegisterViewsForViewModels将其注册?

如果没有,将只读视图注册到合同就足够了吗?RegisterViewsForViewModels如果每个 VM 有多个视图,会中断吗?

标签: c#wpfreactiveui

解决方案


RegisterViewsForViewModels() 的源代码位于https://github.com/reactiveui/ReactiveUI/blob/50403240c792d6d870fbe74961d5df297b4a1f2e/src/ReactiveUI/IDependencyResolver.cs

我想您可以修改该方法以查找您的 IReadOnlyViewFor 或其他内容并使用合同名称进行注册。


推荐阅读