【发布时间】:2015-10-07 23:26:34
【问题描述】:
我们在不同的程序集中有视图和视图模型。 Views 的程序集具有对 VM 的引用。 (有时我们需要后面的代码)。
ViewModel 的 DataContext 是在代码中设置的,而不是在 XAML 中。因此,无论是 VS,Resharper 都无法像智能感知那样提供帮助,而且 Resharper 也会给出很多警告。
我们可以在 XAML cmets 中为 Resharper 设置任何指令来说明我们打算将 View 与特定类型的 VM 一起使用吗?
更新:
很好的blogpost 作为已接受答案的补充。
【问题讨论】:
-
不幸的是,Resharper 在将 ViewModel 放置在代码隐藏中时不会(也无法)解析它。唯一可行的方法是将其放置在 XAML 中 UIElement 的 .DataContext 属性中。你把它放在代码隐藏中的理由是什么,也许我可以提供进一步的帮助?
-
我们对虚拟机使用构造函数依赖注入。 VM 可以通过 VmManager 相互访问。我们希望虚拟机有权决定导航的工作方式。视图根本没有转换,只是绑定到命令和属性。我们使用代码隐藏来调整 fokus 行为或输入。