PrismWPFSample(0)概要

Prismを使用したWPFアプリケーション開発で役に立つと思われる項目を一つのアプリケーションにまとめたものを作りました。使用している環境は Win10, Visual Studio Community 2017, Prism V7.1.0.431, .NET4.5.2, DIコンテナとしてUnity を使っています。モジュール間でのデータ共有、イベントアグリゲータ、モジュールからのメニューの追加を組み込んでいます。その他にはTraceListeners, WPFLocalizeExtension, OxyPlotを使っています。


作成したサンプルは次の場所に置いてあります。

github.com

アプリケーションに組み込まれているのは以下になります。
1. Prismによるプラグインモジュール開発

  • モジュールの組み込み方法

   特定フォルダーにあるDLLをまとめて組み込み

  • モジュール間でのデータ共有方法

   シングルトンでモデルを登録してモジュールのViewModelの引数として受け取る

  • モジュール間での通信(イベントアグリゲータ)方法

   他のモジュールに何かしてもらいたい時使用
   このアプリでは言語設定が変わった事を各モジュールに伝えるのに使用

  • モジュールのタブコントロールへの組み込み方法
  • モジュールの組み込み順序のコントロール

2. モジュールから MenuItem を追加する方法
  モジュールに MenuItem の View を作成してメインアプリの Menu に挿入します。

3. ログの保存方法(TraceListeners)

4. 多言語対応(WPFLocalizeExtension)
  WPFLocalizeExtensionを使用します。
  Resource.resxを編集するにはResx Manager を使用すると便利です。

5. アプリケーションの設定の使い方

  • PropertiesのSettings.settingsに登録した項目の使用と変更保存方法
  • DataGridへの表示の仕方、見栄えの変更

6. コンバータの作り方

  • EnumRadioConverter ラジオボタンのバインド用
  • ScaleConverter 単位変換等に使える計算コンバータ

    パラメータ(a,b,c)で計算 (value + a ) x b + c でスケール変換

  • ushort2Bit16Converter

    16bit変数を16個のビット列で表示したい時

  • ushort2HexConverter

    16bit変数を16進4文字で表示したい時

7. OxyPlotのサンプル

  • マイクからの入力をリアルタイムで表示するサンプル
  • OxyPlotのChartをクリップボードにコピー、ファイル保存、表示のフィッティングをコンテキストメニューに組み込み
  • トグルスイッチによるON・OFF

8. アプリの2重起動禁止

9. ウインドウ位置保存



以上のような内容を組み込んだサンプルアプリの外観はこんな感じです。

f:id:feynman911:20190625213109j:plain

次回は、1.Prismによるプラグインモジュール開発 について記述したいと思います。