Xamari.Forms では、MVVM(Model-View-ViewModel)の実装にPrism.Formsを利用していた。
.NET MAUIでの実装方法を検討。選択肢として、以下の3つの方法を検討。
・Microsoft Learn の .NET MAUI → データバインディングとMVVMで紹介されているように、素直にインターフェース INotifyPropertyChanged を用いてコーディングする。
・Prism.Core を利用する。
・Community Tool Kit を使う。
Community Tool Kit を試してみることにする。
Microsoft Learn では、MVVMツールキットとして紹介されている。
NuGetパッケージの管理で CommunityToolkit.Mvvm をインストール。
cf.) https://learn.microsoft.com/ja-jp/dotnet/maui/tutorials/notes-mvvm/?view=net-maui-7.0
xamlファイル の ContentPageタグ に ビューモデル の name space を追加。
ex)
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:viewModels="clr-namespace:Example2.ViewModels"
x:Class="Example2.MainPage"
Title="Main Page">
Label に表示するだけなら、例えば、Labelタグに text=”{Binding Label1}” 、ビューモデルには、Label1 にラムダ式で値をセットするのが簡便。
コメント