如何在ViewModel中使用MAUI弹出窗口而不是XAML.cs(页面代码隐藏)?

问题描述 投票:0回答:1

我正在尝试在 .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 中尝试执行的操作的示例: Code showing error in Display alert

我的问题: 如何从我的 ViewModel 触发 MAUI 弹出窗口(如 DisplayAlert)? 我是否需要注入任何服务或接口来实现此目的? 在 .NET MAUI 项目的 ViewModel 中使用弹出窗口的最佳实践是什么?

我想遵循 MVVM 最佳实践,因此我希望尽可能避免将逻辑放入代码隐藏文件中。任何帮助或示例将不胜感激!

popup maui popupwindow
1个回答
0
投票

两种简单的方法是

Application.Current.MainPage.DisplayAlert

或者使用Shell

Shell.Current.CurrentPage.DisplayAlert

希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.