2009-08-20 14 views
4

は私がいるCommandBindingを使用して、このコントロール(WPF)を持って、それは次のように登録されます:私は、コントロールをアンロードするときCommandManagerによって登録されたコマンドバインディングをクリアするにはどうすればよいですか?

CommandBinding binding = new CommandBinding(ApplicationCommands.Delete, OnDeleteExecuted, CanExecuteDelete); 
CommandManager.RegisterClassCommandBinding(typeof(MyObject), binding); 

だから、私はこのバインディングをクリアしたいです。それについてどうすればいいのですか?

ありがとうございます!

+0

http://stackoverflow.com/questions/21511674/set-command-target-to-template-part/21515179#21515179 –

答えて

-2
+0

BindingOperations.ClearAllBindings(this);この場合にはより良い? – Carlo

+2

コントロールのコンテキスト内にいる場合は、はい。そのコントロールのすべてのバインディングを即座にクリアすることができます。 – Charlie

+0

いいですね。ありがとうございました。 – Carlo

3

コマンドの範囲は、コンクリートのUIElementである場合は、より良い使用する必要があります。

  • いるCommandBindingを登録しますmyUIelement.CommandBindings.Add(myCommand)。
  • CommandBindingの登録を解除します。myUIelement.CommandBindings.Remove(myCommand);
  • すべてのCommandBindingを登録解除します。myUIelement.CommandBindings.Clear();

これが役立ちます。

関連する問題