ServiceCollectionExtensions

ServiceCollectionExtensions zapewniają szereg metod rozszerzających, które upraszczają rejestrowanie widoków i powiązanych z nimi modeli widoku (ViewModeli) w .NET MAUI IServiceCollection.

Element ServiceCollectionExtensions można znaleźć w obszarze CommunityToolkit.Maui przestrzeni nazw, więc wystarczy dodać następujący wiersz, aby rozpocząć pracę:

using CommunityToolkit.Maui;

UWAGA: Te metody rozszerzeń rejestrują tylko elementy View i ViewModels w elemencie IServiceCollection. Deweloperzy nadal odpowiadają za przypisanie wstrzykniętej instancji ViewModelu do właściwości BindingContext widoku.

Ponadto te metody rozszerzeń zakładają, że istnieje relacja jeden do jednego między modelami View i ViewModel, a obie te metody mają ten sam okres istnienia. Deweloperzy będą musieli powrócić do rejestrowania widoków i modeli widoków oddzielnie, aby określić różne cykle życia lub obsłużyć scenariusze, w których wiele widoków korzysta z tego samego modelu widoku.

Rejestrowanie widoków i modeli widoków

Poniższe metody umożliwiają rejestrowanie widoków i modeli widoków w .NET MAUI IServiceCollection.

AddScoped<TView, TViewModel>(IServiceCollection)

Dodaje widok o określonym zakresie typu określony w modelu TView i ViewModel typu TViewModel do określonej kolekcji IServiceCollection.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddScoped<HomePage, HomePageViewModel>();
    }
}

Parametry typu

TView

Typ widoku do dodania. Ograniczone do BindableObject

TViewModel

Typ obiektu ViewModel do dodania. Ograniczone do typów referencyjnych implementujących INotifyPropertyChanged

Parametry

services IServiceCollection

Kolekcja IServiceCollection, do której należy dodać elementy View i ViewModel.

Zwroty

IServiceCollection Odwołanie do tego wystąpienia po zakończeniu operacji.

AddSingleton<TView, TViewModel>(IServiceCollection)

Dodaje pojedynczy widok typu określonego w modelu TView i ViewModel typu TViewModel do określonej klasy IServiceCollection.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddSingleton<HomePage, HomePageViewModel>();
    }
}

Parametry typu

TView

Typ widoku do dodania. Ograniczone do BindableObject

TViewModel

Typ obiektu ViewModel do dodania. Ograniczone do typów referencyjnych implementujących INotifyPropertyChanged

Parametry

services IServiceCollection

IServiceCollection, do którego należy dodać elementy View i ViewModel.

Zwroty

IServiceCollection Odwołanie do tego wystąpienia po zakończeniu operacji.

AddTransient<TView, TViewModel>(IServiceCollection)

Dodaje do określonej kolekcji IServiceCollection przejściowy obiekt View typu określonego przez TView oraz obiekt ViewModel typu TViewModel.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddTransient<HomePage, HomePageViewModel>();
    }
}

Parametry typu

TView

Typ widoku do dodania. Ograniczone do BindableObject

TViewModel

Typ obiektu ViewModel do dodania. Ograniczone do typów referencyjnych implementujących INotifyPropertyChanged

Parametry

services IServiceCollection

IServiceCollection, do której należy dodać elementy View i ViewModel.

Zwroty

IServiceCollection Odwołanie do tego wystąpienia po zakończeniu operacji.

Rejestrowanie widoków i modeli widoku przy użyciu trasy Shell

Poniższe metody umożliwiają rejestrowanie widoków i modeli widoków w .NET MAUI IServiceCollection i jawne zarejestrowanie trasy do widoku w ramach routingu .NET MAUI Shell.

AddScopedWithShellRoute<TView, TViewModel>(usługi, trasa, fabryka)

Dodaje do określonej kolekcji IServiceCollection widok o zakresie scoped typu TView oraz model widoku typu TViewModel, a także rejestruje widok do nawigacji Shell pod trasą określoną w parametrze route. Opcjonalnie można podać RouteFactory, aby kontrolować tworzenie elementu View.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddScopedWithShellRoute<HomePage, HomePageViewModel>("HomePage");
    }
}

Parametry typu

TView

Typ widoku do dodania. Ograniczone do NavigableElement

TViewModel

Typ obiektu ViewModel do dodania. Ograniczone do typów referencyjnych implementujących INotifyPropertyChanged

Parametry

services IServiceCollection

Kolekcja IServiceCollection, do której należy dodać elementy View i ViewModel.

route ciąg znaków

Trasa, do której można nawigować po widoku w .NET MAUI Shell.

factory (optional) RouteFactory

Kontrolka do RouteFactory sterowania konstrukcją Widok.

Zwroty

IServiceCollection Odwołanie do tego wystąpienia po zakończeniu operacji.

AddSingletonWithShellRoute<TView, TViewModel>(usługi, trasa, fabryka)

Dodaje widok jako singleton typu określonego w TView oraz ViewModel typu TViewModel do określonej kolekcji IServiceCollection i rejestruje widok na potrzeby nawigacji w powłoce Shell pod trasą określoną w parametrze route. Opcjonalnie można podać RouteFactory, aby kontrolować tworzenie widoku.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddSingletonWithShellRoute<HomePage, HomePageViewModel>("HomePage");
    }
}

Parametry typu

TView

Typ widoku do dodania. Ograniczone do NavigableElement

TViewModel

Typ obiektu ViewModel, który ma zostać dodany. Ograniczone do typów referencyjnych implementujących INotifyPropertyChanged

Parametry

services IServiceCollection

Kolekcja IServiceCollection, do której należy dodać elementy View i ViewModel.

route ciąg znaków

Trasa, za pomocą której można przejść do widoku w .NET MAUI Shell.

factory (optional) RouteFactory

RouteFactory do kontrolowania tworzenia widoku.

Zwroty

IServiceCollection Odwołanie do tego wystąpienia po zakończeniu operacji.

AddTransientWithShellRoute<TView, TViewModel>(usługi, trasa, fabryka)

Dodaje widok przejściowy typu określonego w modelu TView i ViewModel typu TViewModel do określonego elementu IServiceCollection i rejestruje widok nawigacji powłoki w trasie określonej w parametrze trasy. Opcjonalnie można podać RouteFactory, aby kontrolować tworzenie widoku.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddTransientWithShellRoute<HomePage, HomePageViewModel>("HomePage");
    }
}

Parametry typu

TView

Typ widoku do dodania. Ograniczone do NavigableElement

TViewModel

Typ obiektu ViewModel, który ma zostać dodany. Ograniczone do typów referencyjnych implementujących INotifyPropertyChanged

Parametry

services IServiceCollection

Kolekcja IServiceCollection, do której należy dodać elementy View i ViewModel.

route ciąg znaków

Trasa, do której można nawigować po widoku w .NET MAUI Shell.

factory (optional) RouteFactory

Kontrolka RouteFactory do sterowania tworzeniem widoku.

Zwroty

IServiceCollection Referencja do tego wystąpienia po zakończeniu operacji.

Zarejestruj widok wyskakujący i model widoku

Poniższe metody umożliwiają zarejestrowanie widoków i modeli widoku opartych na wyskakujących oknach w .NET MAUI IServiceCollection.

AddTransientPopup<TPopupView, TPopupViewModel>(IServiceCollection)

Dodaje widok przejściowy typu określonego w TPopupView i ViewModel typu TPopupViewModel do określonego elementu IServiceCollection.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddTransientPopup<UpdatingPopup, UpdatingPopupViewModel>();
    }
}

Parametry typu

TView

Typ widoku do dodania. Ograniczone do Popup

TViewModel

Typ modelu ViewModel do dodania. Ograniczone do typów referencyjnych implementujących INotifyPropertyChanged

Parametry

services IServiceCollection

IServiceCollection, do której należy dodać elementy View i ViewModel.

Zwroty

IServiceCollection Odwołanie do tego wystąpienia po zakończeniu operacji.

API

Kod źródłowy ServiceCollectionExtensions można znaleźć w repozytorium .NET MAUI Community Toolkit GitHub.