[英]ContentDialog.ShowAsync() result is always None
我有一個帶有 ContentDialog.XAML 的簡單 ContentDialog:
<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
。 這是預期的行為嗎?
private void OkClick(object sender, RoutedEventArgs e)
{
this.Result = MyResult.Yes;
// Close the dialog
dialog.Hide();
}
問題是PrimaryButtonClick="OkClick"
, OkClick 覆蓋了默認操作(即隱藏),因此結果始終為None
。 刪除它解決了問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.