问题标签 [undo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4080 浏览

.net - 在 WPF 绑定中撤消

如何使用 WPF 中的绑定提供撤消/重做?

例如,您使用绑定实现了一个主从视图。编辑后,您的更改会使用绑定自动保存。然后,您要撤消更改。

WPF 的绑定中是否有现成的东西?WPF 是否提供了一些结构或接口?

这个问题不是关于如何使用堆栈实现撤消/重做。

0 投票
3 回答
5013 浏览

c# - 在 WPF MV-VM 中撤消,它如何适应?

在我之前的项目中,我已经在 c++ 中实现了 undo system,并且我知道它是如何工作的。我也知道命令模式。

我将实现一个 C#/WPF 桌面应用程序,并希望我的设计基于 MV-VM 模式。

该应用程序将:

  • 是一个相对较小的项目(1 个开发人员估计需要 2-3 周的工作时间)
  • 有一个具有持久性的简单数据模型(linq to XML)
  • 支持撤销/重做

我想知道是否有人在遵循 MV-VM 模式时有实施撤消系统的经验。它如何融入其中?它如何从 INotifyPropertyChanged 和 INotifyCollectionChanged 通知中受益,因此在实现模型(业务对象)时所需的工作最少。

我认为撤消系统会以某种方式集成到 ViewModel 层中,因为它是一种 UI 状态。

任何想法?

0 投票
98 回答
10675866 浏览

git - 如何撤消 Git 中最近的本地提交?

我不小心将错误的文件提交给了Git,但还没有将提交推送到服务器。

如何从本地存储库撤消这些提交

唯一的方法似乎是在某种 GUI 文本编辑器中复制编辑,然后擦除整个本地克隆,然后重新克隆存储库,然后重新应用编辑。然而,

  • 这可能会导致数据丢失。
  • 当只运行意外时,很难做到这一点git commit

有没有更好的办法?

0 投票
6 回答
162024 浏览

git - Git 撤消某些文件中的更改

在编码时,我将打印语句添加到一些文件中以跟踪正在发生的事情。

完成后,是否可以还原某些文件中的更改,但提交我实际处理的文件?

假设我在 file 中添加了 print A,但我修改了 file BB是我想提交的A,我想恢复到原来的状态。

0 投票
1 回答
562 浏览

visual-studio - 在选择范围内撤消?

有没有办法在 Visual Studio 中获得“在选择中撤消”功能?如果没有,是否有任何具有此功能的编辑器?

它似乎非常有用,无需多次撤消 x、复制、重做 x 多次并粘贴。相反,人们可以只突出显示感兴趣的区域并在该位置撤消......

0 投票
3 回答
4097 浏览

eclipse - 撤消在 Eclipse 中破坏的历史记录?

Eclipse 的撤消历史是否被破坏?在过去的几年里,我一直在使用 3.1、3.2、3.3 和现在的 3.4 版本,并且总是能够撤消历史上大约 20-25 次更改。

在尝试恢复最近的一些更改时,这种胡说八道使我失去了无数次修改(如果您回复“您应该每 25 次更改就提交 svn”,我将向您释放巨龙)。

Preferences->Editors->Text Editors->Undo history size中有一个设置,我将其设置为 1000,但它没有任何帮助。

如果重要的话,我主要在Perl Perspective中使用EclipsePerl EPIC

那么,伙计们,有什么问题,我该如何解决?

0 投票
1 回答
2100 浏览

iphone - UIApplication 是否在 iPhone OS 3.0 中发送“Shake-to-Edit”通知?

在 iPhone OS 3.0 中,UIApplication 允许您设置 applicationSupportsShakeToEdit 标志。文档说“默认值为 YES。如果您不希望应用程序在用户摇动设备时显示 Undo 和 Redo 按钮,请将该属性设置为 NO。”

这一切都很好,它与新的 NSUndoManager 类很好地联系在一起。但是 - 我不想在我的应用程序中使用内置的 NSUndoManager!我正在编写一个绘图应用程序,并且我已经有一个撤消/重做管理器可以做一些花哨的事情(它管理每个撤消操作所需的数据,如果应用程序内存不足,它会将其分页到磁盘)。我宁愿只听来自 UIApplication 的通知并自己触发撤消。(我可以制作一个虚假的 NSUndoManager,但我也不希望“你确定吗?”面板显示...)

有谁知道这样的通知是否存在?我认为它必须 - 但我无法在任何地方找到它。有没有办法监控通过应用程序的所有通知,也许?

谢谢!

0 投票
2 回答
359 浏览

database-design - 处理数据库中的历史/更改跟踪以及对 BL 的影响

在当前正在处理客户端的应用程序中,我们要求我们保存系统中发生的每个操作的历史记录,并提供回溯到信息先前状态的能力。

例如:假设我的应用程序需要处理一个储藏室,每个用户都可以添加/更新/删除/读取(所有 CRUD)库存

如果用户使用操作 A1 添加产品 P1 并更新其信息,使其变为具有操作 A2 的 P2,然后是 P3、P4 等等。在应用程序中,用户将有一个屏幕显示产品的所有演变,以及一个显示用户所做的所有操作的屏幕。用户可以选择某个动作并“撤消”它。

乍一看,我认为我将存储某种 Actions 表,其中包含我需要的有关该操作的所有信息,当我需要撤消和操作时,我只需还原代码中的更改。

我的问题是:如果产品不是存储在一张表中而是分成几张表(由于优化/可理解性等),我需要弄清楚更改的确切位置。

我应该在 Actions 表中注明哪些表受到影响并将其反映给 BL 吗????

在我看来,必须有更好的解决方案

0 投票
8 回答
28478 浏览

vim - Vim 中如何使用撤销树?

这个答案说:

Vim 的撤销/重做系统是无与伦比的。键入一些内容,撤消,键入其他内容,您仍然可以取回您键入的第一个内容,因为 Vim 使用的是撤消树而不是堆栈。在几乎所有其他程序中,您输入的第一件事的历史都会在这种情况下丢失。

这是我第一次听说这个。我怎样才能沿着树回溯?

0 投票
6 回答
5244 浏览

wpf - WPF 文本框拦截 RoutedUICommands

我正在尝试在我的 WPF 应用程序中使用 Undo/Redo 键盘快捷键(我有自己的自定义功能使用命令模式实现)。但是,该TextBox控件似乎正在拦截我的“撤消”RoutedUICommand。

禁用此功能的最简单方法是什么,以便我可以在 UI 树的根部捕获 Ctrl+Z?如果可能的话,我想避免TextBox在我的应用程序中的每一个中添加大量代码/XAML。

下面简要说明问题: