实施懒惰拖拉下降

时间:2010-09-14 12:56:05

标签: c# drag-and-drop lazy-evaluation

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

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

现在,我的问题是:这里有什么问题 - 为什么调用 GetData()方法没有掉线?是否有另一种方法来实现懒惰拖拽放弃.net中的操作?

2 个答案:

答案 0 :(得分:1)

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

每次出现GetData()都会这样做:

  • 你在这里需要某种计时器。
  • 如果您的计时器已经激活,请将其杀死。
  • 创建并启动一个新计时器。将其设为1秒或从实验中确定其持续时间。
  • on timer event做必须做的事情。

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

答案 1 :(得分:1)

我认为正在调用GetData,以便(潜在的)放置目标可以确定它是否可以接受(潜在的)放置项。您是否考虑过使用shell扩展?