通过View构造函数绑定ViewModel导致MAUI应用崩溃,如何解决?
解决方案
补全页面的依赖注入注册
仅注册MainViewModel不足以让DI容器解析MainPage的构造函数依赖,需在MauiProgram.cs中同时注册页面:builder.Services.AddTransient<MainPage>(); builder.Services.AddTransient<MainViewModel>();同时确保
App.xaml.cs通过DI获取启动页面:public App(MainPage mainPage) { InitializeComponent(); MainPage = mainPage; }调整构造函数代码顺序
将InitializeComponent()移至BindingContext赋值之前,确保页面组件先完成初始化再绑定上下文:public MainPage(MainViewModel mainViewModel) { InitializeComponent(); BindingContext = mainViewModel; }配置调试器捕获异常
在Visual Studio中按Ctrl+Alt+E打开异常设置,勾选Win32 Exceptions下的相关选项,让调试器在异常触发时中断,获取详细错误信息。添加ViewModel无参构造函数(可选)
若存在XAML直接引用ViewModel的场景,需给MainViewModel添加无参构造函数,避免实例化失败:public sealed class MainViewModel { public MainViewModel() { } }
内容的提问来源于stack exchange,提问作者Toto
相关产品推荐
相关产品推荐

