背景
在阅读Josh Smith的有关CommandGroup
的文章时,我注意到互联网上有很多关于如何实现ICommand.CanExecuteChanged
的评论。
类似的问题在StackOverflow上这里发布过,但是:
- 我觉得没有明确的答案,
- 在评论中没有足够的空间来添加额外的上下文。
供参考:
- Josh Smith关于
CommandGroup
的原始文章使用了一个简单的.NET事件 - Josh Smith的
RelayCommand
使用了CommandManager
实现 的CanExecuteChanged
- 微软自家的
RoutedCommand
使用了CommandManager
实现 的CanExecuteChanged
- 微软自家PRISM库(版本:6)也使用了一个简单的.NET事件(之前的版本使用了弱引用)
我的问题
我相对较新于WPF,并且想知道在Josh Smith的CommandGroup
中如何实现CanExecuteChanged
事件,以避免任何意外行为或内存泄漏?
额外阅读
Josh Smith: 使用CommandGroup聚合WPF命令
Josh Smith: 使用MVVM设计模式的WPF应用程序
StackOverflow: Josh Smith的RelayCommand实现是否有缺陷?