私が知る限り、以下のコードを Relay/ICommand コマンドから Delegate コマンドに変更しても、同じ方法でコマンドをバインドできます。私が間違っている場合、それぞれの違いと用途は何ですか。
private DelegateCommand something;
public DelegateCommand Something
これが完全な実装です
private RelayCommand something;
public ICommand Something
{
get
{
if (something == null)
something = new RelayCommand(SomethingMethod, CanSomething);
return something;
}
}
private bool CanSomething(object parameter)
{
//just for readability return true
return true;
}
private void SomethingMethod(object parameter)
{
using (DatabaseContext context = new DatabaseContext())
{
try { }
catch(Exception ex)
{
throw new ApplicationException(string.Format("Something {0} to {1}", file, directory), ex);
}
}
}