我可以在不使用InvalidateRequerySuggested()的情况下在MediaCommands上引发CanExecute吗?

时间:2011-05-30 00:46:10

标签: wpf routed-commands commandbinding

我有一些自定义CommandBindings,用于确定各种MediaCommands(播放,暂停等)的CanExecute状态。我想触发在某些点调用CanExecute处理程序。但是,我能弄清楚如何执行此操作的唯一方法是使用InvalidateRequerySuggested(),这会导致所有内容重新计算其CanExecute。这太过分了,所以我想找出一种更好,更有针对性的方法来更新这些命令上的CanExecute。

看起来如果我使用DelegateCommand我可以通过调用RaiseCanExecuteChanged来做到这一点,但是如果可能的话我想用现有的MediaCommands来做。

如果没有任何直接的方法,甚至有任何hacky变通方法?我注意到在内部重新计算CanExecute有一些智慧(比如第一次显示UIElements等)。

0 个答案:

没有答案