Tworzenie pierwszej aplikacji .NET MAUI dla systemu Windows
Korzystaj z praktycznego rozwiązania .NET MAUI, tworząc pierwszą wieloplatformową aplikację w systemie Windows.
Wprowadzenie
Z tego samouczka dowiesz się, jak utworzyć i uruchomić pierwszą aplikację .NET MAUI dla systemu Windows w programie Visual Studio 2022 (17.3 lub nowszym). Dodamy kilka funkcji MVVM Toolkit z zestawu narzędzi .NET Community Toolkit, aby ulepszyć projekt domyślny.
Konfigurowanie środowiska
Jeśli nie skonfigurowałeś jeszcze środowiska do pracy z .NET MAUI, wykonaj kroki, aby Zacząć pracę z .NET MAUI w systemie Windows.
Tworzenie projektu MAUI platformy .NET
Uruchom program Visual Studio, a w oknie uruchamiania kliknij Utwórz nowy projekt, aby utworzyć nowy projekt:
W oknie Utwórz nowy projekt wybierz z listy rozwijanej Wszystkie typy projektów MAUI, wybierz szablon .NET MAUI App, a następnie kliknij przycisk Dalej:
W oknie Skonfiguruj nowy projekt nadaj projektowi nazwę, wybierz lokalizację, a następnie kliknij przycisk Dalej:
W oknie Dodatkowe informacje kliknij przycisk Utwórz:
Poczekaj, aż projekt zostanie utworzony, a jego zależności zostaną przywrócone:
Na pasku narzędzi programu Visual Studio naciśnij przycisk Maszyna z systemem Windows, aby skompilować i uruchomić aplikację.
W uruchomionej aplikacji naciśnij przycisk Kliknij mnie kilka razy i sprawdź, czy liczba kliknięć przycisków jest zwiększana:
Właśnie uruchomiono pierwszą aplikację .NET MAUI w systemie Windows. W następnej sekcji dowiesz się, jak dodawać funkcje powiązania danych i obsługi komunikatów z MVVM Toolkit do aplikacji.
Rozwiązywanie problemów
Jeśli kompilacja Twojej aplikacji się nie powiedzie, zapoznaj się z sekcją Rozwiązywanie znanych problemów, która może zawierać rozwiązanie Twojego problemu.
Dodawanie zestawu narzędzi MVVM
Teraz, gdy masz pierwszą aplikację .NET MAUI działającą w systemie Windows, dodajmy do projektu niektóre funkcje zestawu narzędzi MVVM, aby ulepszyć projekt aplikacji.
Kliknij prawym przyciskiem myszy projekt w eksploratorze rozwiązań i wybierz pozycję Zarządzaj pakietami NuGet... z menu kontekstowego.
W oknie Menedżera pakietów NuGet wybierz kartę Przeglądaj i wyszukaj CommunityToolkit.MVVM:
pakiet
Dodaj do projektu najnowszą stabilną wersję pakietu CommunityToolkit.MVVM (wersja 8.0.0 lub nowsza), klikając Zainstaluj.
Zamknij okno Menedżera pakietów NuGet po zakończeniu instalacji nowego pakietu.
Ponownie kliknij prawym przyciskiem myszy projekt i wybierz pozycję Dodaj | Klasa z menu kontekstowego.
W wyświetlonym oknie Dodaj nowy element nadaj klasie nazwę
MainViewModel
i kliknij przycisk Dodaj:Klasa
MainViewModel
będzie celem powiązania danych dlaMainPage
. Zaktualizuj ją tak, aby dziedziczyła zObservableObject
w przestrzeni nazwCommunityToolkit.Mvvm.ComponentModel
. To również będzie wymagało zaktualizowania klasy do wartościpublic
ipartial
.Klasa
MainViewModel
będzie zawierać następujący kod. RekordCountChangedMessage
definiuje komunikat, który jest wysyłany za każdym razem, gdy klikany jest przycisk "Kliknij mnie", powiadamiając widok o dokonanej zmianie. Atrybuty ObservableProperty i RelayCommand dodane domessage
iIncrementCounter
są generatorami źródłowymi dostarczonymi przez zestaw narzędzi MVVM, aby stworzyć szablonowy kod MVVM do implementacjiINotifyPropertyChanged
iIRelayCommand
. Implementacja metodyIncrementCounter
zawiera logikę zOnCounterClicked
w MainPage.xaml.cs, z modyfikacją polegającą na wysyłaniu komunikatu z nową wartością licznika. Później usuniemy ten kod zaplecza.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)); } } }
Notatka
Musisz zaktualizować przestrzeń nazw w poprzednim kodzie, aby pasować do przestrzeni nazw w projekcie.
Otwórz plik MainPage.xaml.cs do edycji i usuń metodę
OnCounterClicked
oraz polecount
.Dodaj następujący kod do konstruktora
MainPage
po wywołaniu metodyInitializeComponent()
. Ten kod otrzyma komunikat wysłany przezIncrementCounter()
wMainViewModel
i zaktualizuje właściwośćCounterBtn.Text
przy użyciu nowego komunikatu i ogłosi nowy tekst przy użyciuSemanticScreenReader
:WeakReferenceMessenger.Default.Register<CountChangedMessage>(this, (r, m) => { CounterBtn.Text = m.Text; SemanticScreenReader.Announce(m.Text); });
Należy również dodać do klasy instrukcję
using
.using CommunityToolkit.Mvvm.Messaging;
W
MainPage.xaml
dodaj deklarację przestrzeni nazw doContentPage
, aby można było znaleźć klasęMainViewModel
:xmlns:local="clr-namespace:MauiOnWindows"
Dodaj
MainViewModel
jakoBindingContext
dlaContentPage
:<ContentPage.BindingContext> <local:MainViewModel/> </ContentPage.BindingContext>
Zaktualizuj
Button
naMainPage
, aby korzystać zCommand
zamiast obsługiwać zdarzenieClicked
. Polecenie zostanie powiązane z właściwością publicznąIncrementCounterCommand
wygenerowaną przez generatory źródłowe narzędzi MVVM.<Button x:Name="CounterBtn" Text="Click me" SemanticProperties.Hint="Counts the number of times you click" Command="{Binding Path=IncrementCounterCommand}" HorizontalOptions="Center" />
Uruchom ponownie projekt i sprawdź, czy licznik jest nadal zwiększany po kliknięciu przycisku:
Gdy projekt jest uruchomiony, spróbuj zaktualizować komunikat "Hello, World!" w pierwszej etykiecie, aby brzmiał "Hello, Windows!" w MainPage.xaml. Zapisz plik i zwróć uwagę, że funkcja Hot Reload XAML aktualizuje interfejs użytkownika, gdy aplikacja nadal działa.
Następne kroki
Dowiedz się, jak utworzyć aplikację wyświetlającą dane programu Microsoft Graph