Compilare la prima app MAUI .NET per Windows
È possibile usare .NET MAUI creando la prima app multipiattaforma in Windows.
Introduzione
In questa esercitazione si apprenderà come creare ed eseguire la prima app MAUI .NET per Windows in Visual Studio 2022 (17.3 o versione successiva). Noi aggiungeremo alcune funzionalità MVVM Toolkit dal .NET Community Toolkit per migliorare il design del progetto predefinito.
Configurazione dell'ambiente
Se non hai già configurato l'ambiente per lo sviluppo di .NET MAUI, segui la procedura per Introduzione a .NET MAUI su Windows.
Creazione del progetto MAUI .NET
Avviare Visual Studio e nella finestra iniziale fare clic su Crea un nuovo progetto per creare un nuovo progetto:
Nella finestra Crea un nuovo progetto, selezionare MAUI nell'elenco a discesa Tutti i tipi di progetto, selezionare il modello .NET MAUI App e fare clic sul pulsante Avanti:
Nella finestra Configura il nuovo progetto assegnare un nome al progetto, scegliere un percorso e fare clic sul pulsante Avanti:
Nella finestra Informazioni aggiuntive fare clic sul pulsante Crea:
Attendere che il progetto venga creato e che le relative dipendenze vengano ripristinate:
Nella barra degli strumenti di Visual Studio premere il pulsante Computer Windows per compilare ed eseguire l'app.
Nell'app, premere il pulsante Clicca su di me più volte e osservare che il numero di clic sul pulsante aumenta.
È stata appena eseguita la prima app MAUI .NET su Windows. Nella sezione successiva si apprenderà come aggiungere funzionalità di data binding e messaggistica da MVVM Toolkit all'app.
Risoluzione dei problemi
Se la compilazione dell'app non riesce, consulta Risoluzione dei problemi noti, che potrebbe offrire una soluzione per il tuo problema.
Aggiunta di MVVM Toolkit
Ora che hai la prima app MAUI .NET in esecuzione in Windows, aggiungiamo alcune funzionalità di MVVM Toolkit al progetto per migliorare la progettazione dell'app.
Fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Gestisci pacchetti NuGet... dal menu di scelta rapida.
Nella finestra Gestione pacchetti NuGet, selezionare la scheda Sfoglia e cercare CommunityToolkit.MVVM:
Aggiungere la versione stabile più recente del pacchetto CommunityToolkit.MVVM (versione 8.0.0 o successiva) al progetto facendo clic su Installa.
Chiudere la finestra di Gestione pacchetti NuGet al termine dell'installazione del nuovo pacchetto.
Fare di nuovo clic con il pulsante destro del mouse sul progetto e selezionare Aggiungi | Classe dal menu di scelta rapida.
Nella finestra Aggiungi nuovo elemento visualizzato assegnare alla classe il nome
MainViewModel
e fare clic su Aggiungi:La classe
MainViewModel
sarà la destinazione del data binding per l'MainPage
. Aggiornarlo per ereditare daObservableObject
nello spazio dei nomiCommunityToolkit.Mvvm.ComponentModel
. Sarà inoltre necessario aggiornare la classe per esserepublic
epartial
.La classe
MainViewModel
conterrà il codice seguente. Il recordCountChangedMessage
definisce un messaggio inviato ogni volta che si fa clic sul pulsante Fai clic su di me, notificando la visualizzazione della modifica. Gli attributi ObservableProperty e RelayCommand aggiunti ai membrimessage
eIncrementCounter
sono generatori di origine forniti da MVVM Toolkit per creare il codice boilerplate MVVM perINotifyPropertyChanged
e implementazioniIRelayCommand
. L'implementazione del metodoIncrementCounter
contiene la logica diOnCounterClicked
in MainPage.xaml.cs, con una modifica per inviare un messaggio con il nuovo messaggio del contatore. Il codice code-behind verrà rimosso in un secondo momento.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)); } } }
Nota
Sarà necessario aggiornare lo spazio dei nomi nel codice precedente in modo che corrisponda allo spazio dei nomi nel progetto.
Aprire il file MainPage.xaml.cs per la modifica e rimuovere il metodo
OnCounterClicked
e il campocount
.Aggiungere il codice seguente al costruttore
MainPage
dopo la chiamata aInitializeComponent()
. Questo codice riceverà il messaggio inviato daIncrementCounter()
nelMainViewModel
e aggiornerà la proprietàCounterBtn.Text
con il nuovo messaggio e annuncia il nuovo testo con ilSemanticScreenReader
:WeakReferenceMessenger.Default.Register<CountChangedMessage>(this, (r, m) => { CounterBtn.Text = m.Text; SemanticScreenReader.Announce(m.Text); });
Sarà anche necessario aggiungere un'istruzione
using
alla classe :using CommunityToolkit.Mvvm.Messaging;
In
MainPage.xaml
aggiungere una dichiarazione dello spazio dei nomi allaContentPage
in modo che sia possibile trovare la classeMainViewModel
:xmlns:local="clr-namespace:MauiOnWindows"
Aggiungere
MainViewModel
comeBindingContext
per ilContentPage
:<ContentPage.BindingContext> <local:MainViewModel/> </ContentPage.BindingContext>
Aggiornare il
Button
inMainPage
per usare unCommand
anziché gestire l'eventoClicked
. Il comando verrà associato alla proprietà pubblicaIncrementCounterCommand
generata dai generatori di origine di MVVM Toolkit:<Button x:Name="CounterBtn" Text="Click me" SemanticProperties.Hint="Counts the number of times you click" Command="{Binding Path=IncrementCounterCommand}" HorizontalOptions="Center" />
Eseguire di nuovo il progetto e osservare che il contatore viene ancora incrementato quando si fa clic sul pulsante:
Durante l'esecuzione del progetto, prova ad aggiornare il messaggio "Hello, World!" nella prima Etichetta affinché legga "Hello, Windows!" in MainPage.xaml. Salva il file e nota che Ricaricamento Rapido XAML aggiorna l'interfaccia utente mentre l'app è ancora in esecuzione:
Passaggi successivi
Informazioni su come creare un'app che visualizza i dati di Microsoft Graph
Contenuto correlato
risorse per l'apprendimento di MAUI .NET