複雑な方法を何度も使いすぎて、タスクを実行する最も簡単な方法を忘れてしまうこともありました。
コマンドバインディングの方法は知っていますが、常に同じアプローチを使用しています。
ICommand インターフェイスを実装するクラスを作成し、ビュー モデルからそのクラスの新しいインスタンスを作成すると、バインディングが魅力的に機能します。
これは、コマンドバインディングに使用したコードです
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = this;
testCommand = new MeCommand(processor);
}
ICommand testCommand;
public ICommand test
{
get { return testCommand; }
}
public void processor()
{
MessageBox.Show("hello world");
}
}
public class MeCommand : ICommand
{
public delegate void ExecuteMethod();
private ExecuteMethod meth;
public MeCommand(ExecuteMethod exec)
{
meth = exec;
}
public bool CanExecute(object parameter)
{
return false;
}
public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
{
meth();
}
}
しかし、これを行うための基本的な方法を知りたいです。サードパーティのdllはなく、新しいクラスは作成されません。単一のクラスを使用して、この単純なコマンド バインディングを実行します。実際のクラスは ICommand インターフェイスから実装し、作業を行います。