【问题标题】:how to display message dailogue in PCL project class file如何在 PCL 项目类文件中显示消息对话框
【发布时间】:2017-02-18 16:08:48
【问题描述】:

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

我尝试使用

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

        await dialog.ShowDialogSafely();

但这需要在 pcl 项目的类文件中不可用的 windows.UI.Popups 命名空间。我认为这是因为它由所有平台共享,并且该命名空间仅适用于 windows。那么我该如何实现这一点。请帮忙。 提前致谢

【问题讨论】:

    标签: xamarin code-behind messagebox shared


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      AcrUserDialogs 库允许在 PCL https://www.nuget.org/packages/Acr.UserDialogs/ 中使用对话框

      【讨论】:

        【解决方案3】:

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

        一个简单的信息框如下:

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

        具有多个选项的窗口,如下所示:

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

        【讨论】:

          【解决方案4】:

          对我有用的Acr.UserDialogs 的替换是:

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

          好的一面是因为您不需要在项目中引用插件“UserDialogs.Init(this);”在您的 MainActivity 类中。 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

          【讨论】:

            猜你喜欢
            • 2017-08-01
            • 1970-01-01
            • 2019-09-12
            • 1970-01-01
            • 2013-04-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多