ContentDialog.ShowAsync()结果始终为None

时间:2016-10-16 17:18:07

标签: c# xaml uwp

我有一个简单的ContentDialog和ContentDialog.XAML:

<ContentDialog x:Class="SampleApp.Dialogs"
           xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
           xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
           xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
           xmlns:local="using:SampleApp.Dialog"
           xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
           PrimaryButtonClick="OkClick"
           PrimaryButtonText="OK"
           SecondaryButtonText="Cancel"
           SecondaryButtonClick="CancelClick"

           mc:Ignorable="d">
<StackPanel>

    <TextBox 

             Text="{x:Bind NameOne, Mode=TwoWay}" />

    <TextBox  Text="{x:Bind NameTwo, Mode=TwoWay}" />
</StackPanel>

在代码隐藏中:

     private void OkClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
    {
       this.Hide();
    }

当我想通过以下方式初始化此对话时:

Dialog dialog = new Dialog();
var result = await dialog.ShowAsync();

result始终为ContentDialogResult.None类型。即使我点击“确定”或“取消”,但当我点击“确定”时它应至少为ContentDialogResult.Primary。这是预期的行为吗?

2 个答案:

答案 0 :(得分:1)

private void OkClick(object sender, RoutedEventArgs e)
{
    this.Result = MyResult.Yes;
    // Close the dialog
    dialog.Hide();
}

答案 1 :(得分:0)

问题是$ cordova emulate android ... BUILD SUCCESSFUL Total time: 1.284 secs Built the following apk(s): /home/daniel/cordova/myapp/platforms/android/build/outputs/apk/android-debug.apk ANDROID_HOME=/home/daniel/Android/Sdk JAVA_HOME=/usr/lib/jvm/jre1.8.0_101 No emulator specified, defaulting to 4.65_720p_(Galaxy_Nexus)_API_23 Waiting for emulator to start... emulator: ERROR: virtual device name contains invalid characters emulator: could not find virtual device named '4.65_720p_(Galaxy_Nexus)_API_23' ,OkClick覆盖默认操作(隐藏),因此结果始终为PrimaryButtonClick="OkClick"。 删除它解决了这个问题。