1

我在 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
}
4

0 回答 0