WPF Prism 入門エントリまとめ

WPF Prism 入門 として 2017/12 月に episode: 0 を公開して、エントリの数も増えてきたのでまとめページを作成しました。

Windows デスクトップアプリは Windows Form しか作ったことがない管理人が、WPF と Prism を使って MVVM パターンでアプリを作成する過程で調べた情報を順番に書いているので、WPF と Prism を 1 から覚えたいと言う場合は、episode: 1 (古いエントリ)から順に読み進んでもらえると良いと思います。
episode: 5 からは ReactiveProperty も導入したので、ReactiveProperty 入門も兼ねた内容になっています

前提として以下のエントリは、 Visual Studio 2017 Community Edition で .NET Framework 4.7.2 以上 と C# + Prism 7.1 + ReactiveProperty + Extended WPF Toolkit™ を使用して 、WPF アプリケーションを MVVM パターンで作成するのが目的で、C# での基本的なコーディング知識を持っている人を対象にしています。

WPF Prism episode: 1 ~ WPF は MVVMフレームワークとともに。~

WPF Prism episode: 2 ~ WPF のフレームワーク決まってますか?迷ってますか? Prism を選択してもらっていいですか? ~

2018/9/30 公開。
episode: 1 公開から 1 年近く空いていますが、裏で WPF のアプリを作る為に色々調べ・試してみても分からないことが多過ぎて気持ちが挫けかけていた時に Prism の公式サンプルと出会い、道が開けてきたのをきっかけに Prism の紹介記事を書こうと思い立って書いたエントリ。

episode: 2 は Prism の公式サンプル紹介がメインです。

サブタイトルは『終末なにしてますか? 忙しいですか? 救ってもらっていいですか?』より。

WPF Prism episode: 3 ~ Re: ゼロから始める Prism 生活~

2018/10/19 公開。
Prism を覚えようとしてた時、全体を通して理解できるような情報は公式ドキュメント(英語)位しか見当たらなかったので、Prism 全体を通して記事にすればそれなりに需要がありそうな気がして、丁度裏で作っていたプロトタイプを題材にアプリを作成する手順で記事を書けば理解しやすいかもしれない!と思い込みのまま本格的に連載することを決意したエントリ。

このサイトでは 2019 年 3 月現在最多 PV を稼いでくれているページで、WPF Prism 入門の入口としての役割を果たしてくれています。

Prism のプロジェクト作成から始まり、Prism Shell の作成と最初の Prism Module を作成する手順までを紹介する間で、WPF の Grid パネルで画面のレイアウトを作成する方法等も併せて紹介しています

又、このエントリ公開直前に Prism 7.1 がリリースされ、管理人自身もかなり混乱しましたが、Prism 7.1 の変更箇所の大半がアプリ開始時に行うべき処理がほとんどだったため、サンプルアプリを作り直して、公開予定日をずらして Prism 7.1 の変更箇所についても内容に含めることが出来た思い出深いエントリです。

サブタイトルは『Re:ゼロから始める異世界生活』より。

WPF Prism episode: 4 ~ DI だけど Unity さえあれば関係ないよねっ~

2018/11/4 公開。
Prism で作成するアプリケーションから表示する View は複数の独立した dll に分割されて作成される場合が多く、スタートアッププロジェクトからも参照されていない dll も存在するため、アセンブリ間でデータオブジェクトを受け渡す方法として DI コンテナの Unity が用意されていますが、管理人は DI コンテナをどのように使用すれば良いか全く分からなくてかなり苦労しました。
実際の DI コンテナは『コンストラクタのパラメータに追加するだけで後は勝手にやってくれるよ!』と言う知ってる人には当たり前!な内容を書いたエントリ。

サブタイトルは『お兄ちゃんだけど愛さえあれば関係ないよねっ』より。

WPF Prism episode: 5 ~ご注文は TreeView ですか?~

2018/11/18 公開。
タイトルは TreeView となっていますが、このエントリから ReactiveProperty を導入。
ReactiveProperty の初歩的な使い方も紹介しています

又、TreeView の項目ごとにバインドする VM を用意する考え方も併せて紹介しているので、内容的には MVVM パターンで画面を作成する場合に結構重要と思えることを書いているエントリ。
パック URI スキームの簡単な解説も書いています。

サブタイトルは『ご注文はうさぎですか?』より。

WPF Prism episode: 6 ~されどイベントは ViewModel と踊る~

2018/12/9 公開。
タイトルからは内容が分かりにくいですが、コントロールのイベントを VM で受け取って、ついでに EventArges パラメータまで一緒に受け取る方法を紹介しているエントリ。
ここで紹介しているのは TreeView.SelectedItemChanged イベントを VM へバインドして別の画面に遷移する方法を紹介しています。

又、TreeView を使用した場合に結構困る箇所と思われる定番の【TreeView ノードの全展開】と【TreeView の選択ノードをバインド】する方法についても紹介しています

サブタイトルは『されど罪人は竜と踊る』より。

WPF Prism episode: 7 ~ ReactiveProperty がバインドできないのはどう考えても Navigation が悪い!~

2018/12/24 公開。
Prism で画面遷移をした場合にパラメータを渡す方法を紹介
又、渡したパラメータを ReactiveProperty にバインドした際、プロパティの値が View へ表示されなかった問題の対応を書いたエントリ。

ReadOnly なのでバインドしても意味がない TreeView の SelectedItem を VM から設定する簡単な方法も紹介しています

サブタイトルは『私がモテないのはどう考えてもお前らが悪い!』より。

WPF Prism episode: 8 ~とある TreeView の状況一覧 (Context menu) ~

2019/1/27 公開。
タイトルから内容が分かりにくいシリーズ第 2 弾。
コンテキストメニューの割合が多めだったので『コンテキストメニュー』をタイトルに使用しましたが、実際は TreeView へ子ノードを追加したり、Prism の画面遷移をコントロールするための INavigationAware インタフェースの紹介がメイン!と声を大にして言いたいエントリ。

サブタイトルは『とある魔術の禁書目録』より。

WPF Prism episode: 9 ~ ReactiveProperty の Validation は DataAnnotation じゃないと思った?~

2019/2/24 公開。
長すぎタイトルシリーズ第 2 弾。初の 2 エントリ構成。
Prism 入門と言うより WPF の Validation を ReactiveProperty で定義したプロパティへ設定する内容がメインのエントリ。

サブタイトルは『ネトゲの嫁は女の子じゃないと思った?』より。

WPF Prism episode: 10 ~ ErrorTemplate は Resources タグ、時々、ResourceDictionary ファイルのなか。~

WPF Prism episode: 11 ~ Prism が画面遷移キャンセルするのは IConfirmNavigationRequest だけど INavigationAware じゃない~

2019/3/10 公開。
Prism の Navigation(画面遷移)をキャンセルするための IConfirmNavigationRequest インタフェースを使用する方法を紹介

サブタイトルは『俺が好きなのは妹だけど妹じゃない』より。