使用 MAUI - ViewModelLocationProvider 进行自定义 ViewModel 注册是正确的方法吗?

问题描述 投票:0回答:1

我们正在将 Forms 应用程序迁移到 MAUI,并为我们的页面之一提供了一个自定义 ViewModelLocator,通过覆盖 App.xaml.cs 中的

ConfigureViewModelLocator
来实现。

使用 Prism MAUI 应用程序,我们现在在哪里配置它?

我尝试在 .OnAppStart 中使用

ViewModelLocationProvider.Register

 ViewModelLocationProvider.Register(typeof(TestPage).ToString(),() =>
 {
     // Code to get the ViewModel here...
     return testPageViewModel;
 });

但是 lambda 中的上述代码永远不会被调用。

这是做这件事的正确地点吗? ViewModelLocationProvider 注册在 MAUI 下工作吗?

maui prism
1个回答
0
投票

ViewModelLocationProvider 的注册应该使用依赖注入来完成,如下所示。

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder.UseMauiApp<App>();
        
        // register the services here
        builder.Services.AddSingleton<ViewModelLocationProvider>();

        return builder.Build();
    }
}

看一下这个示例:https://github.com/jfversluis/MauiDependencyInjectionSample/tree/main

© www.soinside.com 2019 - 2024. All rights reserved.