ymm4-plugin-document
読み取り中…
検索中…
一致する文字列を見つけられません
YukkuriMovieMaker.Commons.ActionCommand クラス

デリゲートを受け取り、ICommandインターフェースを実装するシンプルなコマンドクラスです。 MVVMパターンでの利用を想定しています。 [詳解]

YukkuriMovieMaker.Commons.ActionCommand の継承関係図

公開メンバ関数

 ActionCommand ([global::System.Runtime.CompilerServices.Nullable(new byte[] { 1, 2 })] global::System.Func< object, bool > canExecute, [global::System.Runtime.CompilerServices.Nullable(new byte[] { 1, 2 })] global::System.Action< object > execute)
 ActionCommand クラスの新しいインスタンスを初期化します。
bool CanExecute (object parameter)
 現在の状態でコマンドが実行可能かどうかを判断します。
void Execute (object parameter)
 コマンドを実行します。
void RaiseCanExecuteChanged ()
 CanExecuteChanged イベントを発生させます。 これにより、コマンドをバインドしているすべてのUI要素が、コマンドの実行可能状態を再評価します。

イベント

global::System.EventHandler CanExecuteChanged [add, remove]
 コマンドの実行可能状態が変更されたときに発生します。

詳解

デリゲートを受け取り、ICommandインターフェースを実装するシンプルなコマンドクラスです。 MVVMパターンでの利用を想定しています。

このクラスは、Viewからの入力をViewModelのロジックに結びつけるために使用されます。

public class MyViewModel
{
public ICommand MyCommand { get; }
public MyViewModel()
{
MyCommand = new ActionCommand(
(parameter) => CanExecuteMyCommand(parameter),
(parameter) => ExecuteMyCommand(parameter)
);
}
private bool CanExecuteMyCommand(object parameter)
{
// コマンドが実行可能かどうかのロジック
return true;
}
private void ExecuteMyCommand(object parameter)
{
// コマンドの実行ロジック
}
}
デリゲートを受け取り、ICommandインターフェースを実装するシンプルなコマンドクラスです。 MVVMパターンでの利用を想定しています。
Definition ActionCommand.cs:45

構築子と解体子

◆ ActionCommand()

YukkuriMovieMaker.Commons.ActionCommand.ActionCommand ( [global::System::Runtime::CompilerServices::Nullable(new byte[] { 1, 2 } )

ActionCommand クラスの新しいインスタンスを初期化します。

引数
canExecuteコマンドが実行可能かどうかを判断するデリゲート。nullの場合は常に実行可能と見なされます。
executeコマンドが実行するアクションのデリゲート。
// 常に実行可能なコマンド
var command1 = new ActionCommand(null, (p) => Console.WriteLine("Command 1 executed"));
// 特定の条件で実行可能なコマンド
var command2 = new ActionCommand(
(p) => p is int i && i > 0,
(p) => Console.WriteLine($"Command 2 executed with parameter: {p}")
);
ActionCommand([global::System.Runtime.CompilerServices.Nullable(new byte[] { 1, 2 })] global::System.Func< object, bool > canExecute, [global::System.Runtime.CompilerServices.Nullable(new byte[] { 1, 2 })] global::System.Action< object > execute)
ActionCommand クラスの新しいインスタンスを初期化します。
Definition ActionCommand.cs:63

メソッド詳解

◆ CanExecute()

bool YukkuriMovieMaker.Commons.ActionCommand.CanExecute ( object parameter)

現在の状態でコマンドが実行可能かどうかを判断します。

引数
parameterコマンドで使用されるデータ。コマンドがデータを必要としない場合は、このオブジェクトを null に設定できます。
戻り値
コマンドが実行可能な場合は true。それ以外の場合は false。
public class MyViewModel
{
public ActionCommand MyCommand { get; }
public MyViewModel()
{
MyCommand = new ActionCommand(
(parameter) => CanExecuteMyCommand(parameter),
(parameter) => ExecuteMyCommand(parameter)
);
}
private bool CanExecuteMyCommand(object parameter)
{
// parameterが文字列で、かつ空でない場合にのみ実行可能とする
return parameter is string str && !string.IsNullOrEmpty(str);
}
private void ExecuteMyCommand(object parameter) { }
}

◆ Execute()

void YukkuriMovieMaker.Commons.ActionCommand.Execute ( object parameter)

コマンドを実行します。

引数
parameterコマンドで使用されるデータ。コマンドがデータを必要としない場合は、このオブジェクトを null に設定できます。
public class MyViewModel
{
public ActionCommand MyCommand { get; }
public MyViewModel()
{
MyCommand = new ActionCommand(
(parameter) => true,
(parameter) => ExecuteMyCommand(parameter)
);
}
private void ExecuteMyCommand(object parameter)
{
// parameterが文字列の場合、それを表示する
if (parameter is string message)
{
Console.WriteLine($"Executing command with message: {message}");
}
else
{
Console.WriteLine("Executing command without specific parameter.");
}
}
}

◆ RaiseCanExecuteChanged()

void YukkuriMovieMaker.Commons.ActionCommand.RaiseCanExecuteChanged ( )

CanExecuteChanged イベントを発生させます。 これにより、コマンドをバインドしているすべてのUI要素が、コマンドの実行可能状態を再評価します。

通常、コマンドの実行可否に影響を与えるプロパティが変更されたときに、ViewModelからこのメソッドを呼び出します。

イベント詳解

◆ CanExecuteChanged

System global.EventHandler YukkuriMovieMaker.Commons.ActionCommand.CanExecuteChanged
addremove

コマンドの実行可能状態が変更されたときに発生します。

public class MyViewModel
{
public ActionCommand MyCommand { get; }
public MyViewModel()
{
MyCommand = new ActionCommand(
(parameter) => CanExecuteMyCommand(parameter),
(parameter) => ExecuteMyCommand(parameter)
);
MyCommand.CanExecuteChanged += (sender, e) =>
{
Console.WriteLine("CanExecuteChanged event fired.");
};
}
private bool CanExecuteMyCommand(object parameter) => true;
private void ExecuteMyCommand(object parameter) { }
}

このクラス詳解は次のファイルから抽出されました: