Sdílet prostřednictvím


ServiceCollectionExtensions

Poskytuje ServiceCollectionExtensions řadu rozšiřujících metod, které zjednodušují registraci zobrazení a jejich přidružené Modely ViewModel v rozhraní .NET MAUI IServiceCollection.

Najdete ServiceCollectionExtensions ho pod oborem CommunityToolkit.Maui názvů, takže stačí přidat následující řádek, abyste mohli začít:

using CommunityToolkit.Maui;

POZNÁMKA: Tyto rozšiřující metody registrují pouze View a ViewModels v souboru IServiceCollection. Vývojáři stále zodpovídají za přiřazení vložené instance modelu ViewModel k BindingContext vlastnosti View.

Tyto metody rozšíření navíc předpokládají, že mezi View a ViewModel existuje relace 1:1 a obě sdílejí stejnou životnost. Vývojáři se budou muset vrátit k registraci zobrazení a modelů ViewModel jednotlivě, aby mohli určit různé životnosti nebo zpracovávat scénáře, ve kterých více zobrazení používá stejný model ViewModel.

Registrace zobrazení a modelů ViewModels

Následující metody umožňují registrovat zobrazení a modely ViewModel v rozhraní .NET MAUI IServiceCollection.

AddScoped<TView, TViewModel>(IServiceCollection)

Přidá vymezené zobrazení typu zadaného v TView a ViewModel typu TViewModel do zadané 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 zobrazení, který chcete přidat. Omezeno na BindableObject

TViewModel

Typ modelu ViewModel, který chcete přidat. Omezeno na implementované odkazové typy INotifyPropertyChanged

Parametry

servicesIServiceCollection

IServiceCollection pro přidání view a ViewModel do.

Návraty

IServiceCollection A odkaz na tuto instanci po dokončení operace.

AddSingleton<TView, TViewModel>(IServiceCollection)

Přidá singleton View typu zadaného v TView a ViewModel typu TViewModel do zadané 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 zobrazení, který chcete přidat. Omezeno na BindableObject

TViewModel

Typ modelu ViewModel, který chcete přidat. Omezeno na implementované odkazové typy INotifyPropertyChanged

Parametry

servicesIServiceCollection

IServiceCollection pro přidání view a ViewModel do.

Návraty

IServiceCollection A odkaz na tuto instanci po dokončení operace.

AddTransient<TView, TViewModel>(IServiceCollection)

Přidá přechodné zobrazení typu zadaného v TView a ViewModel typu TViewModel do zadané 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

TView

Typ zobrazení, který chcete přidat. Omezeno na BindableObject

TViewModel

Typ modelu ViewModel, který chcete přidat. Omezeno na implementované odkazové typy INotifyPropertyChanged

Parametry

servicesIServiceCollection

IServiceCollection pro přidání view a ViewModel do.

Návraty

IServiceCollection A odkaz na tuto instanci po dokončení operace.

Registrace zobrazení a modelů ViewModel pomocí trasy prostředí

Následující metody umožňují registrovat zobrazení a modely ViewModel v rámci rozhraní .NET MAUI IServiceCollection a explicitně zaregistrovat trasu do zobrazení v rámci směrování prostředí .NET MAUI.

AddScopedWithShellRoute<TView, TViewModel>(services, route, factory)

Přidá vymezené zobrazení typu zadaného v TView a ViewModel typu TViewModel do zadané IServiceCollection a zaregistruje zobrazení pro navigaci prostředí na trase zadané v parametru trasy. K řízení výstavby lze zadat volitelný RouteFactory prvek.

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 zobrazení, který chcete přidat. Omezeno na NavigableElement

TViewModel

Typ modelu ViewModel, který chcete přidat. Omezeno na implementované odkazové typy INotifyPropertyChanged

Parametry

servicesIServiceCollection

IServiceCollection pro přidání view a ViewModel do.

routestring

Trasa, do které lze zobrazení procházet v prostředí .NET MAUI Shell.

factory (optional) RouteFactory

The RouteFactory to control View construction.

Návraty

IServiceCollection A odkaz na tuto instanci po dokončení operace.

AddSingletonWithShellRoute<TView, TViewModel>(services, route, factory)

Přidá jednoúčelové zobrazení typu zadaného v TView a ViewModel typu TViewModel do zadané IServiceCollection a zaregistruje zobrazení pro navigaci prostředí na trase zadané v parametru trasy. K řízení výstavby lze zadat volitelný RouteFactory prvek.

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 zobrazení, který chcete přidat. Omezeno na NavigableElement

TViewModel

Typ modelu ViewModel, který chcete přidat. Omezeno na implementované odkazové typy INotifyPropertyChanged

Parametry

servicesIServiceCollection

IServiceCollection pro přidání view a ViewModel do.

routestring

Trasa, do které lze zobrazení procházet v prostředí .NET MAUI Shell.

factory (optional) RouteFactory

The RouteFactory to control View construction.

Návraty

IServiceCollection A odkaz na tuto instanci po dokončení operace.

AddTransientWithShellRoute<TView, TViewModel>(services, route, factory)

Přidá přechodné zobrazení typu zadaného v objektu TView a ViewModel typu TViewModel do zadaného objektu IServiceCollection a zaregistruje zobrazení pro navigaci prostředí na trase zadané v parametru trasy. K řízení výstavby lze zadat volitelný RouteFactory prvek.

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 zobrazení, který chcete přidat. Omezeno na NavigableElement

TViewModel

Typ modelu ViewModel, který chcete přidat. Omezeno na implementované odkazové typy INotifyPropertyChanged

Parametry

servicesIServiceCollection

IServiceCollection pro přidání view a ViewModel do.

routestring

Trasa, do které lze zobrazení procházet v prostředí .NET MAUI Shell.

factory (optional) RouteFactory

The RouteFactory to control View construction.

Návraty

IServiceCollection A odkaz na tuto instanci po dokončení operace.

Registrace automaticky otevíraného zobrazení a zobrazení modelu

Následující metody umožňují registrovat automaticky otevírané zobrazení a modely ViewModel v rozhraní .NET MAUI IServiceCollection.

AddTransientPopup<TPopupView, TPopupViewModel>(IServiceCollection)

Přidá přechodné zobrazení typu zadaného v TPopupView a ViewModel typu TPopupViewModel do zadané 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 zobrazení, který chcete přidat. Omezeno na Popup

TViewModel

Typ modelu ViewModel, který chcete přidat. Omezeno na implementované odkazové typy INotifyPropertyChanged

Parametry

servicesIServiceCollection

IServiceCollection pro přidání view a ViewModel do.

Návraty

IServiceCollection A odkaz na tuto instanci po dokončení operace.

rozhraní API

Zdrojový kód ServiceCollectionExtensions najdete v úložišti .NET MAUI Community Toolkit na GitHubu.