2013年05月26日

WPFサンプル:標準のコマンドを使う

   このエントリーをはてなブックマークに追加 Clip to Evernote
WPFでは、プレゼンテーション層から何かの機能を呼び出す目的のために、イベントハンドラとは別に、「コマンド」という仕組みを用意しています。コマンドを使うと、イベントハンドラよりも、ロジックと見た目の結合度を低くすることができます。コマンドの例として代表的なものは、「コピー」、「切り取り」、「貼り付け」、「開く」、「印刷」などがあります。

標準のコマンドを使った簡単なサンプルを書いてみました。

まずはXAMLです。


このサンプルでは、ApplicationCommands.Cut、ApplicationCommands.Copy、ApplicationCommands.Paste、ApplicationCommands.Openを使っています。

Cut, Copy, Pasteでは、コマンドが実行できない状況では、メニュー項目は自動的に無効になります。TextBoxコントロールにはCopyコマンド等を処理するためのロジックが組み込まれているため、特別なコードを書かなくても、Commandを指定するだけで機能するようになります。

ApplicationCommands.Openでは、CommandBindingを使い、Executeプロパティで、Commandとイベントハンドラを結び付けています。
CommandBinding CanExecuteプロパティは、コマンドが実行できるかどうかを判断するメソッドと結び付けます。
ここでは、C#のコードで、無条件に trueを返していますが、falseを返せば、関連しているコントロールがDisable状態になります。

C#のコードを以下に示します。
ApplicationCommands.Openと関連づけられたOpenCmdExecutedメソッドでは、OpenFileDialogを使い、ユーザが指定したファイルを読み込み、TextBoxに表示しています。


実行時のスクリーンショットです。

StandardCommand1

StandardCommand2

この他にも、 ApplicationCommands、NavigationCommands、MediaCommands、EditingCommands、ComponentCommands など多くのコマンドが定義済みです。詳細はMSDNを参照してください。


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52321075