【发布时间】:2013-07-08 23:44:19
【问题描述】:
我在 MVVM 应用程序中有一个按钮,它与视图模型中的命令挂钩。视图模型命令的处理程序执行一些文件 I/O(特别是调用 File.Copy 来创建或覆盖现有文件)。
现在,似乎当我双击按钮时,此命令处理程序被调用了两次。由于两个处理程序现在都试图访问同一个文件以同时复制/覆盖它,所以我得到了一个 IOException。
除了捕获 IOException 并忽略它之外,还有什么方法可以处理这种情况?尽管系统的其他部分可能存在不相关的问题导致这种情况发生,但这似乎并不能保证捕获。
【问题讨论】:
-
你试过使用信号量吗?您可以围绕您的 I/O 代码设置它,以阻止任何额外的传入按钮点击。这不一定是解决办法。只是一个问题,直到你找到解决多次点击的方法。
-
@Alan:实际上,所有这些问题似乎都与处理双击有关。我不在乎处理双击事件,我只想忽略它。基本上,如果有一种方法可以仅在点击计数 == 1 时触发命令,而无需退出命令系统。
-
@CaptainBli:我曾考虑过使用信号量,但我希望它会更容易一些。 ://
-
好吧我误会了,我试着回答一下
标签: wpf mvvm event-handling double-click