依赖注入 MAUI 的导航错误

navigation error with Dependency Injection MAUI

我正在将我的整个应用程序转换为 MVVM 并添加依赖项 注射。我用过的导航

Navigation.PushAsync(new date());

它曾经有效,但现在不再有效。你有什么解决办法吗

里面date.xaml.cs


public partial class date : ContentPage
{
    public date(dateViewModel vm)
    {
        InitializeComponent();
        BindingContext = vm;
    }
    
    private void GoNav(object sender, EventArgs e)
    {
        Navigation.PopAsync();
    }
}

C#编译错误为

CS7036 There is no argument given that corresponds to the required formal parameter 'vm' of 'date.date(dateViewModel)' dateCalculator (net6.0-android), dateCalculator (net6.0-ios), dateCalculator (net6.0-maccatalyst), dateCalculator (net6.0-windows10.0.19041.0) C:\Users\source\repos\dateCalculator\dateCalculator\MainPage.xaml.cs 12

原因

是因为你去掉了default class constructor,新建了一个有参的,所以调用new date()时,找不到无参的构造函数(默认的) ,这就是错误出现的原因。

解决方案

  1. 删除新构造函数。

或者

  1. 创建时给参数值 class 。
    Navigation.PushAsync(new date(YourVm));