ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
Windows8(C#) ストアアプリ : MessageDialog
日時: 2013/05/03 09:15
名前: lightbox



// *************************************************
//保存ボタン
// *************************************************
private async void SaveButton_Click(object sender, RoutedEventArgs e)
{
	var messageDialog = new MessageDialog("データを保存しますか?","AppBarテンプレート");

	// OK ボタンのイベントを定義する
	var OK_Handler = new UICommandInvokedHandler(this.CommandInvokedHandler);
	var OK_Command = new UICommand("OK", OK_Handler) { Id = 0 };
	messageDialog.Commands.Add(OK_Command);

	// Cancel ボタンのイベントを定義する
	messageDialog.Commands.Add(
		new UICommand(
			"Cancel",
			new UICommandInvokedHandler(this.CommandInvokedHandler)
			) { Id = 1 }
		);

	// 無名のイベントで、アプリケーションを終了する
	messageDialog.Commands.Add(
		new UICommand(
			"アプリ終了",
			(Command) =>
			{
				// アプリケーション終了
				App.Current.Exit();
			}
			) { Id = 2 }
		);

	// Enter キーで反応するデフォルトボタン
	messageDialog.DefaultCommandIndex = 0;
	// ESC キーで反応するキャンセルボタン
	messageDialog.CancelCommandIndex = 1;

	await messageDialog.ShowAsync();
}
※ Id は、CommandInvokedHandler の引数のプロパティとして参照する為にセットしています。
private void CommandInvokedHandler(IUICommand command)
{
	Debug.WriteLine("保存ボタンがクリックされました");
	Debug.WriteLine("応答ボタンのテキストは《" + command.Label + "》です");
}
メンテナンス

変数に代入して、一つ一つ実装して行く ( No.1 )
日時: 2013/05/03 09:06
名前: lightbox


日時: 2013/05/03 09:06
名前: lightbox
// OK ボタンのイベントを定義する
var OK_Handler = new UICommandInvokedHandler(this.CommandInvokedHandler);
var OK_Command = new UICommand("OK", OK_Handler) { Id = 0 };
messageDialog.Commands.Add(OK_Command);
1) 既存のメソッドより、UICommandInvokedHandler で、メッセージダイアログ用のイベントハンドラを作成する
2) イベントハンドラを、"OK" という文字列を付加して、UICommand を作成する
3) messageDialog.Commands.Add で、メッセージダイアログのボタンとして追加登録する( 3つまで )
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
メソッドの引数内で、new を使用して一度に記述して実装する ( No.2 )
日時: 2013/05/03 09:15
名前: lightbox
// Cancel ボタンのイベントを定義する
messageDialog.Commands.Add(
	new UICommand(
		"Cancel",
		new UICommandInvokedHandler(this.CommandInvokedHandler)
		) { Id = 1 }
	);
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
ラムダ式を使って、その場で処理を記述する ( No.3 )
日時: 2013/05/03 09:16
名前: lightbox
// 無名のイベントで、アプリケーションを終了する
messageDialog.Commands.Add(
	new UICommand(
		"アプリ終了",
		(Command) =>
		{
			// アプリケーション終了
			App.Current.Exit();
		}
		) { Id = 2 }
	);
このアーティクルの参照用URLをクリップボードにコピー メンテナンス