●DIコンテナー
プロジェクトを作成していると、
たくさんViewができると思います。
ということは、少なくとも同じ数以上の
ViewModelが出来上がるはずです。
ここで発生する問題は、
ViewModel間でデータの連係をどうするか
というのが出てくると思います。
方法は二つあります。
一つは、シングルトンで作成した一つのオブジェクトを
複数のViewModelで使用する。
もう一つは、イベントでデータを飛ばす方法です。
ここでは、前者の方について説明します。
例えば、こんなクラスを作成したとします。
これをシングルトンでオブジェクトを作成するには、
Bootstrappersクラスにて
ConfigureContainerをオーバーライドし、
Containerに登録します。
ContainerはBootstrappersクラスのプロパティで、
何もしなくても存在しているシングルトンのオブジェクトです。
これにインスタンスを登録すれば、
ViewModel生成時に引数で受け取る事ができます。
RegisterType<>にインスタンス化するクラスと
それを取り出すためのインターフェースを登録します。
そうするとこんな感じに書けます。
こうすればPrismライブラリが、
View生成と同時にViewModelもインスタンス化し、
Containerに登録したオブジェクトも引数に入ります。