Search code examples
c#maui.net-mauimaui-windowsmaui-community-toolkit

.NET MAUI error No parameterless constructor defined for this object


Occurs when binding my view to the view model.

Error description:

System.MissingMethodException: 'No parameterless constructor defined for type 'yournamespace.view.pagename'.'

Solution

  • It turns out I just forgot to register the View and the ViewModel into MauiProgram.cs

    In XAML Page Code Behind

    public partial class TestPage : ContentPage
    {
      public TestPage(TestViewModel testViewModel)
       {
          InitializeComponent();
          BindingContext = testViewModel;
       }
    }
    

    In MauiProgram.cs

    public static class MauiProgram
    {
        public static MauiApp CreateMauiApp()
        {
            var builder = MauiApp.CreateBuilder();
            builder
                .UseMauiApp<App>()
                .ConfigureFonts(fonts =>
                {
                    fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                    fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
                });
    #if DEBUG
            builder.Logging.AddDebug();
    #endif
            builder.Services.AddSingleton<TestViewModel>();
            builder.Services.AddSingleton<TestPage>();
    
            return builder.Build();
        }
    }