我正在将整个应用程序转换为MVVM并添加依赖项注射对于导航,我使用了
Navigation.PushAsync(new 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没有给定与"date.date(dateViewModel)"dateCalculator(net6.0-android)、dateCalculat器(net6.0-ios)、date计算器(net6.0-maccatalyst)、dateCalculator(net6.0-windows10.0.19041.0)C:\Users\source\repos\dateCalculator\dataCalculator\MainPage.xaml.cs 12 的所需形式参数"vm"相对应的参数
原因
这是因为您删除了default class constructor
并创建了一个带参数的新构造函数,所以当您调用new date()
时,它无法找到没有参数的构造函数(默认构造函数),这就是错误出现的原因。
解决方案
- 删除新的构造函数
或
- 在创建类时给出参数的值。
Navigation.PushAsync(new date(YourVm));