-1

谁能知道我应该如何实现在 C# 的树视图中映射的文件(目录、子目录)的剪切/复制/粘贴的撤消/重做?

有一些代码示例会很棒。

4

3 回答 3

7

考虑实现命令模式(GoF):

  • 将您的操作逻辑放入实现通用 ICommand {Do(); 的类中 撤消();}接口。
  • 在每个用户操作上,您创建请求的命令对象并使用新旧文件名等上下文参数对其进行初始化。
  • 调用 Do(),将对象放入已完成命令的堆栈中。
  • 每个命令都提供了上下文,因此通过调用 Undo() 它可以反转更改。
  • 考虑将文件移动到临时文件夹而不是删除。
于 2008-12-15T11:52:08.893 回答
5

撤消/重做通常使用所谓的“命令模式”来实现。使用 Google 搜索或阅读以下文章:

http://blogs.vbcity.com/jspano/articles/198.aspx

于 2008-12-15T11:39:50.570 回答
1

对于快速线性撤消/重做,您可以使用Memento 模式,使用文件的 zip 作为纪念品。

于 2008-12-15T11:52:21.997 回答