WPFでMVVMプログラミング 第四回

●DIコンテナー

プロジェクトを作成していると、

たくさんViewができると思います。

ということは、少なくとも同じ数以上の

ViewModelが出来上がるはずです。

 

ここで発生する問題は、

ViewModel間でデータの連係をどうするか

というのが出てくると思います。

 

方法は二つあります。

一つは、シングルトンで作成した一つのオブジェクトを

複数のViewModelで使用する。

もう一つは、イベントでデータを飛ばす方法です。

ここでは、前者の方について説明します。

 

例えば、こんなクラスを作成したとします。

これをシングルトンでオブジェクトを作成するには、

Bootstrappersクラスにて

ConfigureContainerをオーバーライドし、

Containerに登録します。

ContainerはBootstrappersクラスのプロパティで、

何もしなくても存在しているシングルトンのオブジェクトです。

これにインスタンスを登録すれば、

ViewModel生成時に引数で受け取る事ができます。

RegisterType<>にインスタンス化するクラスと

それを取り出すためのインターフェースを登録します。

 

そうするとこんな感じに書けます。

こうすればPrismライブラリが、

View生成と同時にViewModelもインスタンス化し、

Containerに登録したオブジェクトも引数に入ります。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください