15

Occurs when binding my view to the view model.

Error description:

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

1 Answer 1

48

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();
    }
}
Sign up to request clarification or add additional context in comments.

4 Comments

How did you do it?
@Asmtony, Add builder.Services.AddSingleton<PageType> in MauiProgram.cs
Same mistake at my end.
You probably don't want to register them as Singletons.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.