酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

WindowsストアアプリでMessageDialogクラスを使ってメッセージダイアログを表示する その2

メッセージダイアログを表示させる その1」の続きになります。複数のボタンを表示させる方法についてご紹介しました。

本記事では複数個のボタンを表示したメッセージダイアログで、どのボタンが選択されたのかを取得する方法をご紹介します。

**選択したボタンのインデックス値を取得する

|cs| private async void button5_Click(object sender, RoutedEventArgs e) { // メッセージダイアログのインスタンス生成 var dialog = new MessageDialog("○○処理を実行しますか?", "確認");

// あらかじめボタンのラベルを定義する
var cmdOK = new UICommand("実行")
{
    Id = 0
};
var cmdCancel = new UICommand("キャンセル")
{
    Id = -1
};

// コマンドを追加
dialog.Commands.Add(cmdOK);
dialog.Commands.Add(cmdCancel);

// ダイアログの表示処理を開始
var selected = await dialog.ShowAsync();
switch ((int)selected.Id)
{
    case 0:
        // 実行を押した時の処理
        break;
    case -1:
    default:
        // キャンセルを押した時の処理  
        break;
}

} ||<

**UICommandを使ってボタンが押されたときに処理させる

|cs| private async void button6_Click(object sender, RoutedEventArgs e) { // メッセージダイアログのインスタンス生成 var dialog = new MessageDialog("○○処理を実行しますか?", "確認");

// あらかじめボタンのラベルを定義する
var cmdOK = new UICommand("実行")
{
    Invoked = new UICommandInvokedHandler(target =>
    {
        // 実行を押した時の処理
    })
};
var cmdCancel = new UICommand("キャンセル")
{
    Invoked = new UICommandInvokedHandler(target =>
    {
        // キャンセルを押した時の処理     
    })
};

// コマンドを追加
dialog.Commands.Add(cmdOK);
dialog.Commands.Add(cmdCancel);

// ダイアログの表示処理を開始
await dialog.ShowAsync();

} ||<

** 関連