【.NET MAUI】CommunityToolkit でMVVM
昨日の記事では、.NET MAUI で MVVM の実装を試みました。しかし現在様々なベンダーから MVVM デザインパターンをサポートするフレームワークが提供されており、これらを使えば容易にMVVM での開発を行なえます。今回は、CommunityToolkit を使って、.NET MAUI のサンプルを MVVM 化したいと思います。
CommunityToolkit はプラットフォームやランタイムに依存せず、高パフォーマンスを期待できるフレームワークです。Visual Studio で .NET MAUI のプロジェクトを新規作成後、ソリューションエクスプローラでプロジェクトを選択し右クリック。ショートカットメニューから「NuGet パッケージの管理(N)」をクリックします。
「参照」タブを選択、「検索」に ToolKit.MVVM と入力すると、「CommunityToolkit.MVVM」がヒットします。このパッケージをプロジェクトにインストールします。似たようなパッケージで「Microsoft.Toolkit.MVVM」がありますが、こちらと間違えないよう注意ください。
これで CommunityToolkit の用意はできました。次にプロジェクトにビューモデルを追加します。実装は以下のとおり。CommunityToolkit で提供されている ObservableObject クラスを継承してビューモデルを構築しています 。昨日のビューモデルの実装と比較すると、かなりシンプルなコードになっているのがわかります。
CommunityToolkit.Mvvm での ViewModel サンプル
通知プロパティのセッターの実装を簡略化する SetProperty メソッド。また ViewModel のコマンドをサポートする RelayCommand クラスが提供されているので、これらを使うとコードがホントにすっきりしますね。
ビューは昨日と同じコード。ビューモデルとバインドします。
実行するとこうなる。。。
私は WPF での開発を続けているので MVVM フレームワークに長らく Livet を使ってきましたが、選択肢の幅が広がるのはいいことです。これもなかなか良さげな感がありますね。