2016-08-17 14 views
0

私はMVVMパターンが新しく、独自のカスタムコマンドを作成しようとしています。カスタムコマンドを書くための最良の方法は何ですか? (私はここで多くの記事を読んだが、私のコマンドを作成するという考えは得られなかった)。特に、ボタンをクリックして1つのListViewからアイテムを取得して別のListViewに配置した後で、コマンドを作成するというアイデアを手伝ってもらえれば助かります。 (リストビューはObservableCollectionにバインドされています)。前もって感謝します!独自のカスタムコマンドを作成する方法

答えて

0

ICommandインターフェイスを実装するだけです。ウェブ上には多くのものがあり、さらにはナゲットパッケージで実装されています。 RelayCommandまたはDelegateCommandをICommandで検索すると、多くの実装が見つかります。あなたはそれを持っているだけでVMのプライベートメソッドをコマンドでラップするだけです。例えばただ「StartTestCommand」またはものは何でもあなたのコマンドが呼び出されるまで、ボタンのCommandプロパティをバインド(あなたのビューモデルは、データコンテキストであると仮定した場合)XAMLでコマンドをバインドするに

ICommand startTestCommand; 

public ICommand StartTestCommand { get { return startTestCommand ?? (startTestCommand = new RelayCommand(StartTest)); } 

private void StartTest() 
{ 
    //This will execute if the Command is bound in XAML 
} 

本質的には、あなたが求めているもののために「自分のコマンドを作成する」のではなく、結合を防ぐためにコマンドメディエーターの代理人をラップします。独自のコマンドを作成する理由はありますが、そこにあるものを使用することをお勧めします。

0

ICommandインターフェイスを実装するだけで済みます。ほとんどのMVVMフレームワークには、それを実装する一般的なデリゲートベースのコマンドクラスがあります(MVVMライトではRelayCommandなど)。あなたは、コンストラクタに実行するメソッドを渡すだけです。

関連する問題