ServiceCollectionExtensions
ServiceCollectionExtensions
は、.NET MAUI IServiceCollection
内の View とそれに関連する ViewModel の登録を簡略化する一連の拡張メソッドを提供します。
ServiceCollectionExtensions
は CommunityToolkit.Maui
名前空間の下に存在するため、開始するには次の行を追加します。
using CommunityToolkit.Maui;
注: これらの拡張メソッドは、View と ViewModel を
IServiceCollection
に登録するだけです。 開発者は、ViewModel の挿入されたインスタンスを View のBindingContext
プロパティに割り当てる責任を引き続き負います。さらに、これらの拡張メソッドは、View と ViewModel の間に一対一のリレーションシップがあり、両方とも同じ有効期間を共有していることを前提としています。 開発者は、異なる有効期間を指定したり、複数の View が同じ ViewModel を使用するシナリオを処理したりするために、View と ViewModel を個別に登録する必要があります。
View と ViewModel の登録
次のメソッドを使用すると、.NET MAUI IServiceCollection
内に View と ViewModel を登録できます。
AddScoped<TView、TViewModel>(IServiceCollection)
指定した IServiceCollection に、TView で指定された型のスコープ View と TViewModel 型の ViewModel を追加します。
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>();
}
}
型パラメーター
TView
追加するビューの種類。 BindableObject
に制約
TViewModel
追加する ViewModel の型。 INotifyPropertyChanged
を実装する参照型に制約
パラメーター
services
IServiceCollection
View と ViewModel を追加する IServiceCollection。
返品
IServiceCollection 操作が完了した後のこのインスタンスへの参照。
AddSingleton<TView、TViewModel>(IServiceCollection)
指定した IServiceCollection に、TView で指定された型のシングルトン View と TViewModel 型の ViewModel を追加します。
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>();
}
}
型パラメーター
TView
追加するビューの種類。 BindableObject
に制約
TViewModel
追加する ViewModel の型。 INotifyPropertyChanged
を実装する参照型に制約
パラメーター
services
IServiceCollection
View と ViewModel を追加する IServiceCollection。
返品
IServiceCollection 操作が完了した後のこのインスタンスへの参照。
AddTransient<TView、TViewModel>(IServiceCollection)
指定した IServiceCollection に、TView で指定された型の一時的な View と TViewModel 型の ViewModel を追加します。
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>();
}
}
型パラメーター
TView
追加するビューの種類。 BindableObject
に制約
TViewModel
追加する ViewModel の型。 INotifyPropertyChanged
を実装する参照型に制約
パラメーター
services
IServiceCollection
View と ViewModel を追加する IServiceCollection。
返品
IServiceCollection 操作が完了した後のこのインスタンスへの参照。
シェル ルートを使用して View と ViewModel を登録する
次のメソッドを使用すると、.NET MAUI IServiceCollection
内で View と ViewModel を登録し、.NET MAUI シェル ルーティング内で View へのルートを明示的に登録できます。
AddScopedWithShellRoute<TView、TViewModel>(services, route, factory)
指定した IServiceCollection に、TView で指定された型のスコープ View と TViewModel 型の ViewModel を追加し、route パラメーターで指定されたルートでシェル ナビゲーションに対してビューを登録します。 ビューの構築を制御するオプション RouteFactory
を指定できます。
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");
}
}
型パラメーター
TView
追加するビューの種類。 NavigableElement
に制約
TViewModel
追加する ViewModel の型。 INotifyPropertyChanged
を実装する参照型に制約
パラメーター
services
IServiceCollection
View と ViewModel を追加する IServiceCollection。
route
string
.NET MAUI シェル内で View を移動できるルート。
factory (optional)
RouteFactory
View の構築を制御する RouteFactory
。
返品
IServiceCollection 操作が完了した後のこのインスタンスへの参照。
AddSingletonWithShellRoute<TView、TViewModel>(services, route, factory)
指定した IServiceCollection に、TView で指定された型のシングルトン View と TViewModel 型の ViewModel を追加し、route パラメーターで指定されたルートでシェル ナビゲーションに対してビューを登録します。 ビューの構築を制御するオプション RouteFactory
を指定できます。
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");
}
}
型パラメーター
TView
追加するビューの種類。 NavigableElement
に制約
TViewModel
追加する ViewModel の型。 INotifyPropertyChanged
を実装する参照型に制約
パラメーター
services
IServiceCollection
View と ViewModel を追加する IServiceCollection。
route
string
.NET MAUI シェル内で View を移動できるルート。
factory (optional)
RouteFactory
View の構築を制御する RouteFactory
。
返品
IServiceCollection 操作が完了した後のこのインスタンスへの参照。
AddTransientWithShellRoute<TView、TViewModel>(services, route, factory)
指定した IServiceCollection に、TView で指定された型の一時的な View と TViewModel 型の ViewModel を追加し、route パラメーターで指定されたルートでシェル ナビゲーションに対してビューを登録します。 ビューの構築を制御するオプション RouteFactory
を指定できます。
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");
}
}
型パラメーター
TView
追加するビューの種類。 NavigableElement
に制約
TViewModel
追加する ViewModel の型。 INotifyPropertyChanged
を実装する参照型に制約
パラメーター
services
IServiceCollection
View と ViewModel を追加する IServiceCollection。
route
string
.NET MAUI シェル内で View を移動できるルート。
factory (optional)
RouteFactory
View の構築を制御する RouteFactory
。
返品
IServiceCollection 操作が完了した後のこのインスタンスへの参照。
ポップアップ ビューとビュー モデルの登録
次のメソッドを使用すると、.NET MAUI IServiceCollection
内にポップアップ ベースの View と ViewModel を登録できます。
AddTransientPopup<TPopupView、TPopupViewModel>(IServiceCollection)
指定した IServiceCollection に、TPopupView で指定された型の一時的な View と TPopupViewModel 型の ViewModel を追加します。
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>();
}
}
型パラメーター
TView
追加するビューの種類。 Popup
に制約
TViewModel
追加する ViewModel の型。 INotifyPropertyChanged
を実装する参照型に制約
パラメーター
services
IServiceCollection
View と ViewModel を追加する IServiceCollection。
返品
IServiceCollection 操作が完了した後のこのインスタンスへの参照。
API
ServiceCollectionExtensions
のソース コードは、.NET MAUI Community Toolkit の GitHub リポジトリにあります。
.NET MAUI Community Toolkit