「東雲 忠太郎」の平凡な日常のできごと

「東雲 忠太郎」の平凡な日常のできごと

2024.03.05
XML
カテゴリ: C#.NET


WPFのMVVMでよく使用されるコマンドクラスの一例は、RelayCommandです。RelayCommandは、ICommandインターフェースを実装し、指定されたアクションを実行するコマンドを提供します。


以下は、RelayCommandクラスの基本的な実装です。



Copy code

using System;

using System.Windows.Input;


public class RelayCommand : ICommand

{

    private readonly Action<object> _execute;

    private readonly Func<object, bool> _canExecute;


    public RelayCommand(Action<object> execute, Func<object, bool> canExecute = null)

    {

        _execute = execute ?? throw new ArgumentNullException(nameof(execute));

        _canExecute = canExecute;

    }


    public event EventHandler CanExecuteChanged

    {

        add { CommandManager.RequerySuggested += value; }

        remove { CommandManager.RequerySuggested -= value; }

    }


    public bool CanExecute(object parameter)

    {

        return _canExecute == null || _canExecute(parameter);

    }


    public void Execute(object parameter)

    {

        _execute(parameter);

    }

}

このRelayCommandクラスは、次のような特徴があります。


コンストラクタで実行するアクションを指定します。また、オプションで実行可能かどうかを判定するための関数も指定できます。

CanExecuteChangedイベントは、コマンドの実行可能性に変更があるときに発生します。これは、バインディングエンジンに再評価を要求します。

CanExecuteメソッドは、コマンドが実行可能かどうかを判定します。_canExecuteデリゲートがnullである場合、常に実行可能です。

Executeメソッドは、指定されたアクションを実行します。

このRelayCommandクラスを使用することで、WPFのMVVMパターンでコマンドを簡単に定義し、ビューモデルにバインドすることができます。






お気に入りの記事を「いいね!」で応援しよう

Last updated  2024.03.05 21:55:20


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: