我正在尝试在 .NET MAUI 项目中实现弹出窗口,并希望从 ViewModel 或单独的类(而不是 XAML.cs(代码隐藏)文件)触发它。
当直接在 XAML.cs 文件中实现时,我可以使用 DisplayAlert 显示弹出窗口,如官方文档所示: MAUI 弹出文档 - https://learn.microsoft.com/en-us/dotnet/maui/user-interface/pop-ups?view=net-maui-8.0.
但是,当我尝试在 ViewModel 中实现它时,出现以下错误: 当前上下文中不存在名称“DisplayAlert”
我的问题: 如何从我的 ViewModel 触发 MAUI 弹出窗口(如 DisplayAlert)? 我是否需要注入任何服务或接口来实现此目的? 在 .NET MAUI 项目的 ViewModel 中使用弹出窗口的最佳实践是什么?
我想遵循 MVVM 最佳实践,因此我希望尽可能避免将逻辑放入代码隐藏文件中。任何帮助或示例将不胜感激!
两种简单的方法是
Application.Current.MainPage.DisplayAlert
或者使用Shell
Shell.Current.CurrentPage.DisplayAlert
希望这有帮助