Home

Awesome

NuGet Status Nuget

Watch the video:

<a href="http://www.youtube.com/watch?feature=player_embedded&v=qx8A4zIe9dU" target="_blank"> <img src="http://img.youtube.com/vi/qx8A4zIe9dU/hqdefault.jpg" alt="Watch the video" /> </a>

MAUI PageResolver

A simple and lightweight page resolver for use in .NET MAUI projects.

If you want a simple page resolver with DI without using a full MVVM framework (or if you want to use MVU), this package will let you navigate to fully resolved pages, with view models and dependencies, by calling:

await Navigation.PushAsync<MyPage>();

Advanced features

Additional features supported by PageReolver:

await Navigation.PushAsync<MyPage>(myPageParam1, "bob", 4);
await Navigation.PushAsync<MyPage>(myViewModelParam1, "bob", 4);
using Maui.Plugins.PageResolver;
using DemoProject;
using DemoProject.Pages;
using DemoProject.ViewModels;
using DemoProject.Services;
// ---------------
// <auto-generated>
//   Generated by the MauiPageResolver Auto-registration module.
//   https://github.com/matt-goldman/Maui.Plugins.PageResolver
// </auto-generated>
// ---------------

namespace DemoProject;

public static class PageResolverExtensions
{

    public static MauiAppBuilder UseAutodependencies(this MauiAppBuilder builder)
    {
         var ViewModelMappings = new Dictionary<Type, Type>();

         // pages
         builder.Services.AddTransient<MainPage>();


         // ViewModels
         builder.Services.AddTransient<MainViewModel>();


         // Services
         builder.Services.AddSingleton<IDefaultScopedService, DefaultScopedService>();
         builder.Services.AddTransient<ICustomScopedService, CustomScopedService>();


         // ViewModel to Page mappings
         ViewModelMappings.Add(typeof(MainPage), typeof(MainViewModel));


         // Initialisation
         builder.Services.UsePageResolver(ViewModelMappings);
         return builder;
    }
}
[Transient]
public class CustomScopedService : ICustomScopedService
{
[...]

Getting Started

Check out the full instructions in the wiki on using PageResolver