我在 MVVM 应用程序中有一个按钮,它连接到 View 模型中的命令。 View 模型命令的处理程序执行一些文件 I/O(特别是调用 File.Copy 来创建或覆盖现有文件)。
现在,似乎当我双击按钮时,该命令处理程序被调用两次。由于两个处理程序现在都尝试访问同一文件以同时复制/覆盖它,因此我收到了 IOException。
除了捕获 IOException 并忽略它之外,还有什么办法可以处理这种情况吗?尽管系统的其余部分可能存在不相关的问题导致这种情况发生,但这似乎并不是一个有保证的问题。
最佳答案
使用 ViewModel 中的值来保护单击发生时将运行的代码。设置一个值,例如:bool bFileIO = false;
然后在你的处理函数中:
if (!bFileIO)
{
bFileIO = true;
//file IO here
bFileIO = false;
}
类似的东西可以防止多次点击尝试多次运行。
关于wpf - MVVM模式下处理WPF按钮双击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17580912/