我有一个简单的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
。这是预期的行为吗?
答案 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"
。
删除它解决了这个问题。