【问题标题】:In WPF/Prism, what happens with a CompositeCommand when a DelegateCommand.RaiseCanExecuteChanged is fired?在 WPF/Prism 中,当 DelegateCommand.RaiseCanExecuteChanged 被触发时 CompositeCommand 会发生什么?
【发布时间】:2010-11-23 22:41:08
【问题描述】:
假设我有一个 CompositeCommand 注册了很多 DelegateCommands。
如果其中一个子级 DelegateCommands 触发 RaiseCanExecuteChanged,这将导致触发事件 CompositeCommand.CanExecuteChanged,在其他子级中引发相同的事件,或者它只会影响活动的 DelegateCommand?
【问题讨论】:
标签:
c#
wpf
mvvm
prism
delegatecommand
【解决方案1】:
刚刚想通了。通过分析 Prism 的内部结构,我注意到CompositeCommand 在其子级的CanExecuteChanged 事件中注册了自己。因此,每次注册命令引发 CanExecuteChanged 处理程序时,复合命令本身及其所有子命令都会执行相同的操作。