求Prism MAUI Hello World示例及正确配置教程资源
Prism + MAUI 核心配置实操
- 基础依赖安装:确保MAUI项目为稳定版本,通过NuGet安装
Prism.Maui包,优先选择与当前MAUI版本主版本号匹配的Prism版本 - 重写应用主类:将默认的
App类继承从Application替换为PrismApplication,并实现两个抽象方法完成服务注册与初始化导航:public partial class App : PrismApplication { // 注册视图、视图模型、业务服务等依赖项 protected override void RegisterTypes(IContainerRegistry containerRegistry) { // 示例:注册视图与对应视图模型的导航关联 containerRegistry.RegisterForNavigation<MainPage, MainViewModel>(); // 示例:注册业务服务 containerRegistry.Register<IMyBusinessService, MyBusinessService>(); } // 应用初始化完成后执行首页面导航 protected override void OnInitialized() { NavigationService.NavigateAsync("MainPage"); } } - 调整MauiProgram启动逻辑:替换默认的MAUI构建逻辑,集成Prism的容器与应用启动流程:
public static class MauiProgram { public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); // 绑定Prism应用实例,可在此补充额外容器注册逻辑 builder.UsePrismApp<App>(prism => { prism.RegisterTypes(container => { // 可选:在这里补充全局服务注册,或统一放到App的RegisterTypes中 }); }); return builder.Build(); } } - 视图与视图模型自动绑定:遵循Prism约定式命名规则(如
MainPage对应MainViewModel),Prism会自动完成BindingContext关联;如需手动开启,在页面XAML根元素添加:xmlns:prism="http://prismlibrary.com/" prism:ViewModelLocator.AutowireViewModel="True" - 导航与生命周期处理:沿用Prism导航API(如
INavigationService.NavigateAsync())传递页面与参数;在视图模型中实现INavigationAware接口,重写OnNavigatedTo/OnNavigatedFrom方法处理导航前后逻辑 - 依赖注入扩展:在
RegisterTypes方法中完成不同生命周期的服务注册,例如:// 单例服务 containerRegistry.RegisterSingleton<IMySingletonService, MySingletonService>(); // 瞬时服务 containerRegistry.Register<IMyTransientService, MyTransientService>();
内容的提问来源于stack exchange,提问作者Michal.Jan008
相关产品推荐
相关产品推荐

