实现懒惰拖放

tan*_*ius 7 c# drag-and-drop lazy-evaluation

我正在尝试实现一个懒惰的拖放操作.我想向用户显示包含文件的列表视图,当用户拖动文件并将其放入文件夹时,应下载并传送内容.

我正在使用IDataObject接口,但我的问题是过早地查询GetData()方法.例如,在桌面上拖动(不涉及任何丢弃)将多次查询GetData()方法.每个调用都会开始下载文件:/

现在,我的问题是:这里有什么问题 - 为什么调用GetData()方法没有任何丢弃?还有另一种在.net中实现懒惰拖放操作的方法吗?

Dan*_*dor 1

也许这对你有用......

每次出现 GetData() 时,执行以下操作:

  • 这里你需要某种计时器。
  • 如果你的计时器已经处于活动状态,请终止它。
  • 创建并启动一个新的计时器。将其设为 1 秒或通过实验确定其持续时间。
  • 在计时器事件上做必须做的事情。

我在许多需要这种解决方法的场合使用类似的过程。