メソッドへの参照を作成し、「外部」コード (別の dll/プロジェクト) から参照できるという点で、デリゲートに頭を悩ませていると思いました。
現在、MVVM を使用していますが、デリゲートが渡されるのと同じ方法でパラメーターとしてメソッドを渡しているように見える RelayCommand と呼ばれるものが表示されます。これはどのように可能ですか?
私が見ているコードは
public RelayCommand AddUserCommand { get; set; }
public ViewModelMain()
{
this.AddUserCommand = new RelayCommand(AddUser, null);
}
void AddUser(object parameter)
{
//logic
}
RelayCommand オブジェクトは
public class RelayCommand : ICommand
{
public RelayCommand(Action<object> execute, Predicate<object> canExecute)
{
//logic
}
}
では、デリゲートがないので、Action<> オブジェクトで何らかのトリックが発生していると想定できますか?