我使用Prism7与Unity创建了一个小型测试WPF .net框架解决方案。 在我唯一的Module中,我有一个View和一个ViewModel,我没有在View上使用AutoWireViewModel属性。我没有在View上使用AutoWireViewModel属性。相反,我在View上有一个构造函数,将ViewModel作为参数。
public partial class ViewA : UserControl
{
public ViewA(ViewAViewModel viewModel)
{
InitializeComponent();
DataContext = viewModel;
}
}
当我运行应用程序的时候,这就可以了,但我不明白为什么。在我没有将ViewModel添加到Unity容器中的情况下,ViewModel是如何解决的?这是一些默认的Prism魔法吗?如果是的话,有什么地方可以说明吗?
将感谢任何见解。
所有的Prism容器都被配置为自动将Concrete类型解析为瞬态。这使得 Prism 可以解析任何 ViewModel,无论你是否注册了它。