Я пытаюсь добавить MessageDialog в приложение Windows Phone 8.1 (WinRT) с тремя командами. Просмотр документации для MessageDialog:
http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.popups.messagedialog.aspx
В нем говорится, что "Диалог имеет панель команд, которая может поддерживать до трех команд", поэтому я думаю, что это не проблема. Я взял их пример (нашел в документации) и сделал из него простое тестовое приложение, и он отлично работал как на рабочем столе, так и на телефоне Windows. Затем я взял тот же пример и добавил к нему одну команду:
var messageDialog = new MessageDialog("No internet connection has been found.");
// Add commands and set their callbacks; both buttons use the same callback function instead of inline event handlers
messageDialog.Commands.Add(new UICommand(
"Try again",
new UICommandInvokedHandler(this.CommandInvokedHandler)));
messageDialog.Commands.Add(new UICommand(
"Something else",
new UICommandInvokedHandler(this.CommandInvokedHandler)));
messageDialog.Commands.Add(new UICommand(
"Close",
new UICommandInvokedHandler(this.CommandInvokedHandler)));
// Set the command that will be invoked by default
messageDialog.DefaultCommandIndex = 0;
// Set the command to be invoked when escape is pressed
messageDialog.CancelCommandIndex = 1;
// Show the message dialog
await messageDialog.ShowAsync();
Это отлично работает в настольном приложении Windows, но когда я беру один и тот же код и пытаюсь использовать его для приложения для Windows-телефона, у него нет проблем с добавлением третьей команды, но когда она доходит до ожидающего сообщенияDialog.ShowAsync(), он выйдет из строя с необработанным исключением. Интересно, что это не сбой так же, как приложение для настольных компьютеров, когда вы добавляете 4 команды. Для этого он будет генерировать исключение, когда вы попытаетесь добавить 4-ю команду. По телефону у него не будет проблем с этим, но он не будет работать, когда он попытается показать сообщениеDialog.
Я что-то упускаю, или максимальное количество команд на MessageDialog тихо набирается с 3 до 2, когда вы на телефоне?