ホームページ > バックエンド開発 > C++ > WPF で MVVM コマンド処理に RelayCommand を使用する理由

WPF で MVVM コマンド処理に RelayCommand を使用する理由

Patricia Arquette
リリース: 2025-01-17 12:21:11
オリジナル
987 人が閲覧しました

Why Use RelayCommand in WPF for MVVM Command Handling?

RelayCommand の利点

Model-View-ViewModel (MVVM) アーキテクチャの中核原則の 1 つは、ユーザー インターフェイス (View) をアプリケーション ロジック (ViewModel) から分離することです。この分離により、アプリケーションの疎結合とテスト容易性が保証されます。この分離を実現する 1 つの方法は、イベント処理を ViewModel に委任できるコマンドを使用することです。

RelayCommand の役割

RelayCommand は、WPF アプリケーションでコマンドを作成および使用するプロセスを簡素化する ICommand インターフェイスの具体的な実装です。コマンドを実行できるかどうかを判断し (CanExecute)、必要なアクションを実行する (Execute) ロジックをカプセル化します。

RelayCommand を使用する場合

RelayCommand は、UI から分離する必要がある形式の任意のコマンドに使用できます。たとえば、これを使用して、データの保存、ファイルを開く、入力の検証などの操作を実行できます。

テキスト ボックスの内容に基づいてボタンを無効にする

テキスト ボックスの内容に基づいてボタンを無効にするには、ボタンの IsEnabled プロパティを RelayCommand の CanExecute デリゲートの出力にバインドします。 CanExecute デリゲートでは、バインドされたテキストボックスのプロパティが空か無効かどうかを確認し、false を返してボタンを無効にすることができます。

実装例

次のコードは、テキスト ボックスが空かどうかをチェックする CanExecute デリゲートを備えた RelayCommand の基本的な実装を示しています。

<code class="language-csharp">public class TextBoxEmptyCommand : RelayCommand<TextBox>
{
    public TextBoxEmptyCommand(Action<TextBox> execute) : base(execute, (tb) => tb.Text.Length == 0)
    {
    }
}</code>
ログイン後にコピー
次のように、このコマンドをボタンの IsEnabled プロパティにバインドできます。

<code class="language-xaml"><Button Command="{Binding TextBoxEmptyCommand}" Content="Submit" /></code>
ログイン後にコピー

(入力内の 2 番目のコード ブロックが空であることに注意してください。元の記事でも完全な 2 番目のコード ブロックが提供されていないため、何も追加していません。)

以上がWPF で MVVM コマンド処理に RelayCommand を使用する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート