Windows 用の初めての .NET MAUI アプリをビルドする
Windows で初めてのクロスプラットフォーム アプリを構築することで、.NET MAUI を活用できます。
紹介
このチュートリアルでは、Visual Studio 2022 (17.3 以降) で Windows 用の最初の .NET MAUI アプリを作成して実行する方法について説明します。
環境の設定
.NET MAUI 開発用に環境をまだ設定していない場合は、「Windowsで .NET MAUI の使用を開始する」
.NET MAUI プロジェクトの作成
Visual Studio を起動し、スタート ウィンドウで [新しいプロジェクトの作成] をクリックして新しいプロジェクトを作成します。
[新しいプロジェクト の作成] ウィンドウで、ドロップダウンから[すべてのプロジェクトの種類]を選択し、[MAUI]を選び、.NET MAUI App テンプレートを選択して、[次へ ] ボタンをクリックする。
.NET MAUI アプリ テンプレート
[
新しいプロジェクト の構成] ウィンドウで、プロジェクトに名前を付け、その場所を選択して、[次へ] ボタンをクリックします。 [追加情報] ウィンドウで、[作成] ボタンをクリックします。
プロジェクトが作成され、その依存関係が復元されるまで待ちます。
Visual Studio ツール バーで、Windows マシン ボタンを押してアプリをビルドして実行します。
稼働中のアプリで、Click meボタンを数回押し、ボタンのクリック回数が増えることを確認します。
Windows で初めての .NET MAUI アプリを実行しました。 次のセクションでは、MVVM Toolkit からアプリにデータ バインディングとメッセージング機能を追加する方法について説明します。
トラブルシューティング
アプリのコンパイルに失敗した場合は、既知の問題のトラブルシューティングを確認してください。問題の解決策が得られる可能性があります。
MVVM ツールキットの追加
Windows で初めての .NET MAUI アプリを実行したので、MVVM Toolkit の機能をいくつかプロジェクトに追加して、アプリの設計を改善しましょう。
ソリューション エクスプローラー でプロジェクト
右クリックし、コンテキスト メニューから [NuGet パッケージの管理]... を選択します。NuGet パッケージ マネージャー ウィンドウで、[参照] タブを選択し、CommunityToolkit.MVVMを検索します。
[インストール] をクリックして、CommunityToolkit.MVVM パッケージ (バージョン 8.0.0 以降) の最新で安定したバージョンをプロジェクトに追加します。
新しいパッケージのインストールが完了したら、NuGet パッケージ マネージャーの ウィンドウを閉じます。
プロジェクトをもう一度右クリックし、コンテキストメニューから [追加] | [クラス] を選択します。
[新しい項目の追加] ウィンドウが表示されたら、クラスに
MainViewModel
を命名し、追加をクリックします。MainViewModel
クラスは、MainPage
のデータ バインディング ターゲットになります。CommunityToolkit.Mvvm.ComponentModel
名前空間のObservableObject
から継承するように更新します。また、public
およびpartial
されるようにクラスを更新する必要があります。MainViewModel
クラスには、次のコードが含まれます。CountChangedMessage
レコードは、[Click me] ボタンがクリックされるたびに送信されるメッセージを定義し、ビューに変更を通知します。 ObservableProperty および RelayCommand 属性は、message
およびIncrementCounter
メンバーに追加されるソース ジェネレーターであり、MVVM Toolkit によって提供され、INotifyPropertyChanged
およびIRelayCommand
実装用の MVVM 定型コードを作成します。IncrementCounter
メソッドの実装には、MainPage.xaml.csのOnCounterClicked
からのロジックと、新しいカウンター メッセージを含むメッセージを送信するための変更が含まれています。 コードビハインド コードは後で削除されます。using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Messaging; namespace MauiOnWindows { public sealed record CountChangedMessage(string Text); public partial class MainViewModel : ObservableObject { [ObservableProperty] private string message = "Click me"; private int count; [RelayCommand] private void IncrementCounter() { count++; // Pluralize the message if the count is greater than 1 message = count == 1 ? $"Clicked {count} time" : $"Clicked {count} times"; WeakReferenceMessenger.Default.Send(new CountChangedMessage(message)); } } }
手記
前のコードの名前空間を、プロジェクト内の名前空間と一致するように更新する必要があります。
編集用の MainPage.xaml.cs ファイルを開き、
OnCounterClicked
メソッドとcount
フィールドを削除します。InitializeComponent()
の呼び出しの後に、MainPage
コンストラクターに次のコードを追加します。 このコードは、MainViewModel
のIncrementCounter()
によって送信されたメッセージを受信し、CounterBtn.Text
プロパティを新しいメッセージで更新し、SemanticScreenReader
で新しいテキストを読み上げるようになります。WeakReferenceMessenger.Default.Register<CountChangedMessage>(this, (r, m) => { CounterBtn.Text = m.Text; SemanticScreenReader.Announce(m.Text); });
クラスに
using
ステートメントを追加する必要もあります。using CommunityToolkit.Mvvm.Messaging;
MainPage.xaml
で、ContentPage
に名前空間宣言を追加して、MainViewModel
クラスを見つけることができます。xmlns:local="clr-namespace:MauiOnWindows"
ContentPage
のBindingContext
としてMainViewModel
を追加します。<ContentPage.BindingContext> <local:MainViewModel/> </ContentPage.BindingContext>
Clicked
イベントを処理する代わりにCommand
を使用するように、MainPage
のButton
を更新します。 このコマンドは、MVVM Toolkit のソース ジェネレーターによって生成されるIncrementCounterCommand
パブリック プロパティにバインドされます。<Button x:Name="CounterBtn" Text="Click me" SemanticProperties.Hint="Counts the number of times you click" Command="{Binding Path=IncrementCounterCommand}" HorizontalOptions="Center" />
プロジェクトをもう一度実行し、ボタンをクリックしてもカウンターがインクリメントされることを確認します。
プロジェクト実行中に、最初のラベルの「Hello, World!」メッセージを更新して、MainPage.xaml で「Hello, Windows!」を読み取ります。 ファイルを保存すると、アプリ実行中でも XAML ホット リロード によりUIが更新されることに注目してください。
次の手順
.NET MAUI for Windows チュートリアルで Graph SDK を利用して、ユーザー Microsoft Graph データを表示するアプリを構築する方法について説明します。
関連コンテンツ
.NET MAUI を学習するための
Windows での Microsoft Graph API と .NET MAUI の使用
Windows developer