Cod*_*ked 22
此事件由命令引发,以通知其消费者(即Button,MenuItem)它的CanExecute属性可能已更改.因此,如果焦点从一个TextBox移动到另一个TextBox,则可能需要启用/禁用您的命令.此信息还需要使用您的命令传递给任何控件.
通常,此事件只是重新公开CommandManager.RequerySuggested事件.从RoutedCommand类:
public event EventHandler CanExecuteChanged {
add {
CommandManager.RequerySuggested += value;
}
remove {
CommandManager.RequerySuggested -= value;
}
}
Run Code Online (Sandbox Code Playgroud)
RequerySuggested事件经常被触发,因为移动焦点,更改文本选择.这也可以通过调用InvalidateRequerySuggested手动引发.
CanExecuteChanged当CanExecute方法ICommand改变时引发
在某些第三方库中,CanExecuteChanged如果CanExecute参数引发PropertyChanged事件,则也会引发该事件.例如,如果参数引发事件,MVVM Light Toolkit RelayCommand会引发事件,而Prism 则不引发事件.CanExecuteChangedCanExecutePropertyChangedDelegateCommand
| 归档时间: |
|
| 查看次数: |
25108 次 |
| 最近记录: |