我在WPF中实现一个简单的Button
,它在XAML中绑定到ICommand
。
虽然效果很好,但我通过以下代码触发了CanExecute()
:
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
问题是,此事件使实例化的ICommand
保持活跃状态,即使在完成此事件后,CanExecute()
也会CommandManager
不断触发。{ p>
我想我在List<EventHandler>
个实例中以ICommand
的形式得到了一个临时的不受欢迎的修补程序,它会添加来自value
的每个传入的add{}
,我然后通过迭代它并调用CommandManager.RequerySuggested -= eventItem
来手动取消订阅,但我想知道是否有更好的方法或我错误地使用它?