2009-08-20 48 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 – 2014-02-03 07:43:30

回答

-2
+0

會BindingOperations.ClearAllBindings(this);對這種情況更好? – Carlo 2009-08-20 16:39:45

+2

如果你是在控制的背景下,那麼是的。您可以立即清除該控件的所有綁定。 – Charlie 2009-08-20 17:19:49

+0

聽起來不錯。謝謝。 – Carlo 2009-08-20 17:21:04

3

如果命令的範圍是一個具體的UIElement,你最好使用:

  • 一個註冊的CommandBinding:myUIelement.CommandBindings.Add(mycommand的);
  • 取消註冊CommandBinding:myUIelement.CommandBindings.Remove(myCommand);
  • 取消註冊所有CommandBindings:myUIelement.CommandBindings.Clear();

我希望這有助於。