我可以在不使用 InvalidateRequerySuggested() 的情况下在 MediaCommands 上引发 CanExecute 吗?
我有一些自定义 CommandBindings 确定各种 MediaCommands(播放、暂停等)的 CanExecute 状态。我想在某些时刻触发调用 CanExecute 处理程序。然而,我能弄清楚如何做到这一点的唯一方法是使用 InvalidateRequerySuggested(),这会导致所有内容重新计算其 CanExecute。这太过分了,而且速度很慢,所以我想找出一种更好、更有针对性的方法来更新这些命令上的 CanExecute。
看起来如果我使用 DelegateCommand,我可以通过调用 RaiseCanExecuteChanged 来完成此操作,但如果可能的话,我想使用现有的 MediaCommands 来完成此操作。
如果没有任何直接的方法可以做到这一点,是否有任何黑客的解决方法?我注意到在内部重新计算 CanExecute 有一些智能(比如第一次显示 UIElements 等)
I have some custom CommandBindings that determine the CanExecute status of various MediaCommands (Play, Pause, etc). I'd like to trigger the CanExecute handler to be called at certain points. However, the only way I can figure out how to do this is with InvalidateRequerySuggested(), which causes everything to recalculate its CanExecute. That's overkill and slow, so I'd like to figure out a better, more targeted way of updating CanExecute on these Commands.
It looks like if I used a DelegateCommand that I could do this by calling RaiseCanExecuteChanged, but I'd like to do it with the existing MediaCommands if possible.
If there aren't any direct ways of doing this, are there any hacky workarounds even? I've noticed that there is some intelligence at recalculating CanExecute internally (like showing UIElements for the first time, etc.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论