Udostępnij za pośrednictwem


ServiceCollectionExtensions

Udostępnia ServiceCollectionExtensions serię metod rozszerzeń, które upraszczają rejestrowanie widoków i skojarzonych z nimi modeli ViewModel w programie .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 modele View i ViewModels w obiekcie IServiceCollection. Deweloperzy są nadal odpowiedzialni za przypisanie wprowadzonego wystąpienia modelu ViewModel do BindingContext właściwości 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 przywrócić rejestrację widoków i modelu widoków indywidualnie, aby określić różne okresy istnienia lub obsługiwać scenariusze, w których wiele widoków korzysta z tego samego modelu ViewModel.

Rejestrowanie widoków i modeli widoków

Poniższe metody umożliwiają rejestrowanie widoków i modelu ViewModels w programie .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

Widok TView

Typ widoku do dodania. Ograniczone do BindableObject

TViewModel

Typ modelu ViewModel do dodania. Ograniczone do typów referencyjnych implementowanych INotifyPropertyChanged

Parametry

servicesIServiceCollection

IServiceCollection, aby dodać element View i ViewModel do.

Zwraca

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

Widok TView

Typ widoku do dodania. Ograniczone do BindableObject

TViewModel

Typ modelu ViewModel do dodania. Ograniczone do typów referencyjnych implementowanych INotifyPropertyChanged

Parametry

servicesIServiceCollection

IServiceCollection, aby dodać element View i ViewModel do.

Zwraca

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

AddTransient<TView, TViewModel>(IServiceCollection)

Dodaje widok przejściowy typu określonego 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.AddTransient<HomePage, HomePageViewModel>();
    }
}

Parametry typu

Widok TView

Typ widoku do dodania. Ograniczone do BindableObject

TViewModel

Typ modelu ViewModel do dodania. Ograniczone do typów referencyjnych implementowanych INotifyPropertyChanged

Parametry

servicesIServiceCollection

IServiceCollection, aby dodać element View i ViewModel do.

Zwraca

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

Rejestrowanie widoków i modeli widoków za pomocą trasy powłoki

Poniższe metody umożliwiają zarejestrowanie widoków i modeli widoków w programie .NET MAUI IServiceCollection i jawne zarejestrowanie trasy do widoku w ramach routingu powłoki MAUI platformy .NET.

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

Dodaje widok o określonym zakresie typu określony w TView i ViewModel typu TViewModel do określonego elementu IServiceCollection i rejestruje widok nawigacji powłoki w trasie określonej w parametrze trasy. Opcjonalnie RouteFactory można kontrolować konstrukcję 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.AddScopedWithShellRoute<HomePage, HomePageViewModel>("HomePage");
    }
}

Parametry typu

Widok TView

Typ widoku do dodania. Ograniczone do NavigableElement

TViewModel

Typ modelu ViewModel do dodania. Ograniczone do typów referencyjnych implementowanych INotifyPropertyChanged

Parametry

servicesIServiceCollection

IServiceCollection, aby dodać element View i ViewModel do.

routestring

Trasa, do której można nawigować po widoku w powłoce MAUI platformy .NET.

factory (optional) RouteFactory

Kontrolka do RouteFactory sterowania konstrukcją Widok.

Zwraca

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

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

Dodaje pojedynczy widok typu określony 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 RouteFactory można kontrolować konstrukcję 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

Widok TView

Typ widoku do dodania. Ograniczone do NavigableElement

TViewModel

Typ modelu ViewModel do dodania. Ograniczone do typów referencyjnych implementowanych INotifyPropertyChanged

Parametry

servicesIServiceCollection

IServiceCollection, aby dodać element View i ViewModel do.

routestring

Trasa, do której można nawigować po widoku w powłoce MAUI platformy .NET.

factory (optional) RouteFactory

Kontrolka do RouteFactory sterowania konstrukcją Widok.

Zwraca

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 RouteFactory można kontrolować konstrukcję 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

Widok TView

Typ widoku do dodania. Ograniczone do NavigableElement

TViewModel

Typ modelu ViewModel do dodania. Ograniczone do typów referencyjnych implementowanych INotifyPropertyChanged

Parametry

servicesIServiceCollection

IServiceCollection, aby dodać element View i ViewModel do.

routestring

Trasa, do której można nawigować po widoku w powłoce MAUI platformy .NET.

factory (optional) RouteFactory

Kontrolka do RouteFactory sterowania konstrukcją Widok.

Zwraca

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

Rejestrowanie widoku podręcznego i modelu wyświetlania

Poniższe metody umożliwiają rejestrowanie widoków opartych na oknach podręcznych i modelu ViewModels w programie .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

Widok TView

Typ widoku do dodania. Ograniczone do Popup

TViewModel

Typ modelu ViewModel do dodania. Ograniczone do typów referencyjnych implementowanych INotifyPropertyChanged

Parametry

servicesIServiceCollection

IServiceCollection, aby dodać element View i ViewModel do.

Zwraca

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

interfejs API

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