PRISM が次のコンストラクターを宣言しているのを確認しましたが、基本コンストラクターが呼び出されたときに 2 番目のパラメーターとして機能するラムダ関数で使用されている "o" が何であるかがわかりません。
public DelegateCommand(Action<T> executeMethod)
: this(executeMethod, (o)=>true)
{
}
説明をいただければ幸いです。
あなたが投稿した宣言のコンストラクターは別のコンストラクターを呼び出すため、それを説明するには、まず他のコンストラクターの署名を確認する必要があります。
public DelegateCommand(Action<T> executeMethod, Func<T, bool> canExecuteMethod)
したがって、2 番目のパラメーターはFunc<T, bool>
. つまり、型のパラメーターを取り、T
ブール値を返す関数です。
使用されているラムダを見ると、次のようになります。
(o) => true
一般に、ラムダには構文(parameter-list) => lambda-body
があるため、この場合、ラムダの 1 つのパラメーターは変数o
(型は であると推測されますT
) であり、関数は定数の結果を返しますtrue
。
これの目的は、基本的に常に実行可能なコマンドを作成することです。
もちろん、そのラムダはもっと複雑に見える可能性があるため、DelegateCommand を使用する場合は、より複雑で非定数の式を使用する可能性があります。例えば:
new DelegateCommand(DoSomething, o => o.SomeProperty >= 0 && o.SomeProperty < 10 && o.SomeBoolProperty)
このコンストラクターを呼び出します。
DelegateCommand<T>(Action<T>, Func<T, Boolean>)
2 番目のパラメーターとして常に true を返すラムダを渡す