【发布时间】:2014-09-02 07:50:37
【问题描述】:
我对 WPF 很陌生,现在我正在尝试习惯 MVVM 模式。现在我有一个简单的应用程序,其中我有一组视图模型,我在网格中显示。当我双击网格中的行时,我想显示 ViewModel 的详细信息视图。
我现在遇到的问题是我已经有一个完全实例化的 ViewModel,但我似乎无法将它传递到视图中。当我尝试加载该视图时,它变成了空的。我已经发现这是因为当一个 View 被加载时,它会创建它自己的支持 ViewModel 的实例。所以很明显,我需要解决这种行为,并在创建时以某种方式将实例化的 ViewModel 传递到 View 中。我可以在 View 中使用一个构造函数,该构造函数采用 ViewModel 并在其中设置数据源。但是,采用这种方法意味着我需要在 ViewModel 中构造 View,从而使 ViewModel 了解 View。这是我想避免的事情,因为我试图维护 MVVM 模式。
那么在这种情况下我该怎么办?我应该打破 MVVM 模式,还是有一些适合 MVVM 模式的漂亮干净的解决方案?
【问题讨论】: