gpt4 book ai didi

wpf - 是否可以让 CommandManager 仅重新查询特定 WPF 命令而不是全部命令?

转载 作者:行者123 更新时间:2023-12-02 06:48:48 25 4
gpt4 key购买 nike

我正在尝试为我的 MVVM 应用程序实现高度响应的 UI,因此我选择让所有命令处理程序在 BackgroundWorker 中自动执行,这样它们就不会阻塞 UI。

但与此同时,我不希望用户能够在它仍在后台执行时执行相同的命令。解决方案似乎很明显:

  1. 调用 Executed 处理程序时,让 CanExecute 处理程序返回 false
  2. 启动BackgroundWorker异步
  3. BackgroundWorker 完成时,让 CanExecute 处理程序再次返回 true

问题是,我需要在步骤 1 后通知 WPF,并在步骤 3 后再次通知 WPF CanExecute 已更改并且应该需要它。我知道我可以通过调用 CommandManager.InvalidateRequerySuggested 来完成此操作,但这也会导致重新查询所有其他命令的 CanExecute 处理程序。有很多命令,这不好。

有没有办法要求重新查询特定命令 - 即当前正在执行的命令?

TIA

最佳答案

我认为你只需要提高 ICommand.CanExecuteChanged这两种情况都会发生事件,相应的控件应该更新其 IsEnabled 状态。

关于wpf - 是否可以让 CommandManager 仅重新查询特定 WPF 命令而不是全部命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2498999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com