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

では、今回は、

Prismテンプレートで作成したプロジェクトについて

解説したいと思います。

 

まず、通常は見ることがない、

  • Bootstrapper.cs
  • MainWindow.xaml
  • MainWindowViweModel.cs

ですね。

まず、Bootstrapper.csでは、

ソリューションで使用するシングルトンを定義したり、

モジュールの設定などを記載します。

この辺りは、また後で詳しく解説しますね。

で、残りのMainWindow.xamlと

MainWindowViewModel.csですが、

これはそれぞれViewとViewModelです。

 

MainWindow.xamlでViewを定義し、

MainWindowViewModel.csでViewModelのコードを

記載します。

 

ちなみに、ViewとViewModelは命名定義があり、

(つまりは名前を決めるときの決まり事)

Viewsフォルダの中に○○.xamlというViewがあったら、

ViewModelは必ず、

ViewModelsフォルダの中の○○ViewModel.csと対応します。

この名前定義により、

ViewtoViewModelの対応付けがされているのです。

なので、通常は、このルールに従う必要があります。

(違う名前にもできるけど、後々面倒なので)

 

さらに、Viewのコードを見て見ます。

このコードの中にPrismとかTrueとか記載されていますが、

これが、Prismライブラリが有効になっていることを

表しています。

 

つまりは、これがある事で、Viewが生成されると同時に、

ViewModelもPrismによって生成されるのです。

 

なので、ここは絶対に書き換えてはいけません。

 

ちなみに、MainWindow.xaml.csというファイルもありますが、

これに手を入れることはMVVMモデル設計から

逸脱する行為ですので、

MVVMモデルに準拠するのであれば、

ここに手を加えてはいけません。

 

では、次にBootstrapper.csを見て見ます。

Bootstrapper.csではアプリケーションの初期設定を行います。

主に、

  • DIコンテナー
  • モジュール
  • リージョン
  • ベヒイベア

などの設定をここに記載します。

(この辺りについては後述します)

ここでは、

CreateShell()でMainWindowをResolve

(解決→Viewをインスタンス化)し、

InitializeShell()でMainWindowをShow(表示)

しているのがわかると思います。

 

ちなみに、

App.xaml.csを覗いてみると、

bootstreapperをRunしているのがわかると思います。

引数eには、コマンドパラメータが配列で格納され、

bootstreapperの一連の処理を実行しているのが

わかると思います。

 

それでは、次回はDIコンテナーについて解説します。