如何在 PCL 项目 class 文件中显示消息对话框

how to display message dailogue in PCL project class file

我想尝试在 pcl 中的 .cs 文件中显示消息对话 project.I 想从我的 view.xaml.cs 中调用它的方法来显示警报。

我尝试使用

   var dialog = new MessageDialog(e.Message, e.GetType().ToString());
        dialog.Commands.Add(new UICommand("Ok", null));

        await dialog.ShowDialogSafely();

但这需要 windows.UI.Popups pcl 文件中不可用的命名空间 pcl project.I 认为这是因为它由所有平台共享并且该命名空间用于 windowsonly.then我怎样才能实现this.please求助。 提前致谢

您可以使用用户对话框插件来实现此目的。它提供跨平台对话框。 https://github.com/aritchie/userdialogs。然后它只是一个班轮:

await UserDialogs.Instance.AlertAsync(e.Message, e.GetType().ToString());

您可以通过 NuGet 安装它:https://www.nuget.org/packages/Acr.UserDialogs/。请阅读 github 自述文件,了解如何正确设置它。

AcrUserDialogs 库允许在 PCL https://www.nuget.org/packages/Acr.UserDialogs/

中使用对话框

无需第三方插件即可实现。 Xamarin.Forms 是否已实施: https://developer.xamarin.com/guides/xamarin-forms/user-interface/navigation/pop-ups/#Displaying_an_Alert

一个简单的消息框如下:

DisplayAlert ("Alert", "You have been alerted", "OK");

A​​ window 有超过 1 个选项,如下所示:

var answer = await DisplayAlert ("Question?", "Would you like to play a game", "Yes", "No");

对我有用的 Acr.UserDialogs 的替代品是:

 var result = await Application.Current.MainPage.DisplayAlert(
        title,
        message,
        buttonConfirmText,
        buttonCancelText);

好的一面是因为您不需要在项目中引用插件,也不需要在 MainActivity class 中引用 'UserDialogs.Init(this);'。一种可能性也适用于 Prism,但您需要安装它:https://prismlibrary.readthedocs.io/en/latest/Xamarin-Forms/4-Page-Dialog-Service/

来源:https://forums.xamarin.com/discussion/48009/pop-display-alert-message-from-viewmodel