wpf - MVVM模式下处理WPF按钮双击

标签 wpf mvvm event-handling double-click

我在 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/

相关文章:

c# - WPF 内存泄漏导致 System.Windows.Forms.Integration.AvalonAdapter

JavaFX 2 事件分派(dispatch)到底层节点

vb.net - VB流行颜色选择器

java - JTable计算最后一列的总和

WPF 基于 ListView 项目过滤组合框项目

.net - 如何将 View 的加载事件绑定(bind)到 WP7.1 中 View 模型中的方法

wpf - 扩展 UserControl WPF 的自定义控件中的 TextChanged 或 ContentChanged 事件

c# - 使用 C# 绑定(bind)到 WPF 中的 UserControl

wpf - 配置为以编程方式执行更新的 ClickOnce 应用程序有时仍会显示 ClickOnce 更新可用提示

c# - 使用 MVVM 在 UWP 中处理 ListView ItemClick 的最佳实践