1

我已经看到我有几个用于双击按钮的用户的问题。

我有几个按钮绑定到启动许多操作的命令。

例如,有两个窗口通过调解器在它们之间进行通信,因此当我单击“关闭另一个窗口”时,绑定命令会发送“CloseTheOtherWindowMessage”。问题在于,当用户双击时,它会再次尝试关闭窗口,并且正如预期的那样,它会崩溃。

当我按下按钮时,我尝试将窗口 BusyIndi​​cator 设置为 IsBusy,但我的手指比 MVVM 快,它仍然让我在开始显示 BusyIndi​​cator 之前双击。

我发现了很多关于如何使用interaction.Behaviors 只允许在MVVM 中双击的例子,但我想要的恰恰相反。这个问题有什么例子或其他好的和通用的解决方案吗?

4

1 回答 1

1
  1. 为什么它崩溃时“如预期”?崩溃永远不应该“像预期的那样”。

  2. 你的手指不应该“比 MVVM 快”。Dispatcher 线程始终以确定性和顺序的方式运行。您是否使用多线程方法?

  3. 在命令的Execute方法或处理程序中,引发其CanExecuteChanged事件,绑定引擎将立即调用CanExecute(...). 使该方法false第二次返回。也许使用计时器,或者更好的是,您可以仅通过您的视图模型状态在逻辑上确定该操作现在是不可能的(即因为IsOtherStuffAvailableis current false)。

于 2012-10-22T09:36:28.180 回答