我在 ViewModel 第一种方法中使用 DataTemplates。
我需要与多个视图共享一个单例 ViewModel。
因此,我为每个视图设置了一个简单的 ViewModel,并且使用 Ninject,我从内核中获取了对单例视图模型的引用……所以我想。
结构:
主视图模型
ObservableCollection TabViewModels {get; 放;}
TabViewModels.Add(new View1ViewModel());
View1ViewModel
- 在构造函数中...获取对 MainViewModel 的引用(单例)
这会导致循环引用...... MainViewModel 中的构造函数每次都围绕圆圈执行。
我以这种方式在 Ninject 中绑定视图模型......
Bind<GridViewModel>().ToSelf().InSingletonScope();
我以这种方式获得参考...
private MainViewModel _mvm;
public View1ViewModel()
{
_mvm = ViewModelLocator.MainViewModel;
//or
_mvm = ViewModelLocator.Kernel.Get<MainViewModel();
//both produce the same results
}