1

ViewModel の最初のアプローチで DataTemplates を使用しています。

シングルトン ViewModel を複数のビューと共有する必要があります。

そこで、ビューごとにシンプルな ViewModel をセットアップし、Ninject を使用して、カーネルからシングルトン ビューモデルへの参照を取得しているので、考えました。

構造:

MainViewModel

  • ObservableCollection TabViewModels {get; 設定;}

  • TabViewModels.Add(新しい 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