ホーム > コンピュータ > C# > WPF in C# > C#でテキストエディタ

ベクトルドロー・レベルゼロ+

WPFのコマンド結合[C# WPF]

新規作成日 2015-09-25
最終更新日

概要

WPFでは、コマンド結合という仕組みが利用されます。難しくはありませんが、わかりやすい説明が少なく、混乱しやすいので注意が必要です。

コードの使い方

新規にWPFアプリケーションを作成して、張り付けます。 その場合は、Xamlコードの一番上に、<Windows>タグのx:Class属性に、[プロジェクト名].[コード名]が 記載されていますので、この部分を変更します。


<Window x:Class="RichTextBox001.MainWindow"				
			

コマンド結合は、3つの状況に分けて考える

コマンド結合(CommandBinding)がわかりにくいは、状況によって必要な作業が異なるからです。 そこで、理解するためには、3つの状況に分けて考えると理解しやすくなります。

コマンド・ライブラリは、コントロールと呼ばれる、機能単位ごとに、それぞれコマンドを用意しています。

コマンド・ライブラリには、あらかじめ実装が用意されているコマンドとコマンドだけが用意され、実装されていないコマンドが存在します。

既定で実装されているコマンド・ライブラリのコマンドを使用する

既定で実装されているコマンド・ライブラリのコマンドは、あらかじめコマンド結合が完了しています。 そのため、xamlでは、コントールタグのコマンド属性にコマンドを指定するだけで動作します。

この状況では、コマンド結合は意識する必要はありません。

既定で実装されているコマンド・ライブラリのコマンドをオーバーロードする

既定で実装されているコマンド・ライブラリのコマンドを機能拡張、機能変更するために、カスタムメソッドと関連付けるためには、 コマンド結合で明示的に実行されるメソッドを指定する必要があります。

新しいコマンド、規定で実装されていないコマンド・ライブラリにコマンドを追加する

規定では、なにもコマンドに指定されていないので、コマンドが、どのメソッドを実装するかしていする必要があります。

そのとき、考えておくことは、この動作は、イベントで実現できるということです。コマンド結合を設定し、コマンドにするのか、イベントとして処理するのか判断する必要があります。

コマンドにするか、イベントにするか

新しいコマンド、規定で実装されていないコマンド・ライブラリにコマンドを追加するか、 それともイベントとして実装するかの判断は、その機能が、汎用的かどうかで判断すればよいかと思います。

同じコントロールを複数配置し、そのすべてに、機能を追加したいときは、コマンドにしてしまったほうが楽だと思います。

結論

これまでの目的のテキストエディタを作成する目的では、RichTextBoxを使用しています。 このコントロールは、かなりしっかり、コマンド・ライブラリが用意されていますので、当面、コマンド結合は使用する必要がないと考えいいと思います。

次のページの内容

次のページでは、RichTextBoxにプログラムからテキストを追加する方法を紹介します。

ページトップへ
C#トップ
WPF in C#
C#でテキストエディタ
Copyright (C) 2011-2016 kukekko All Rights Reserved.
kukekko@gmail.com
ご連絡の際はアドレスの@は半角にしてください。 また、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません 」。
inserted by FC2 system