为什么调用ContentDialog.ShowAsync()挂起

时间:2019-06-02 15:46:06

标签: c# uwp

为什么下面的代码(由于Aybe)挂在行this.single[0].name = i.skill_name; this.single[0].value= i.score; 上,我希望它得到简单的用户输入,并在用户单击“确定”后继续。但是对话框UI甚至没有完全显示出来。它只是挂有所有白色背景。我只是看到在主窗口的顶部,有一个白色背景的小对话框,它就挂在那里。

我已经看到诸如here之类的问题的解决方案。但是正如该解决方案所建议的那样,我在Button_Click事件上使用了var result = await dialog1.ShowAsync();。引用的解决方案和我的解决方案之间的区别在于,我使用的是async,而我可能没有。那么,我可能会缺少什么以及我们如何解决该问题?

UWP

自定义对话框类

private async void myButton_ClickAsync(object sender, RoutedEventArgs e)
{
  var dialog1 = new ContentDialog1();
  var result = await dialog1.ShowAsync(); //hangs here

  if (result == ContentDialogResult.Primary)
  {
     var text = dialog1.Text;
  }
  ....
  ....
}

更新

我正在使用using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; namespace App1 { public sealed partial class ContentDialog1 : ContentDialog { public static readonly DependencyProperty TextProperty = DependencyProperty.Register( "Text", typeof (string), typeof (ContentDialog1), new PropertyMetadata(default(string))); public ContentDialog1() { InitializeComponent(); } public string Text { get { return (string) GetValue(TextProperty); } set { SetValue(TextProperty, value); } } private void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args) { } private void ContentDialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args) { } } } VS2017笔记本电脑的最新版本。无需点击(触摸设备)或智能手机或平板电脑。

1 个答案:

答案 0 :(得分:0)

在完全按照您的意愿进行操作时,我能够成功显示该对话框。

有一些我们在提供的代码中看不到的东西,或者是因为它可以正常工作。