每当IWpfTextView的TextBuffer发生变化时,我都会尝试获取历史记录的redostack和undostack,并简单地检查计数。执行此操作时,我在尝试访问两个堆栈时遇到“方法不支持的异常”。
我是否错误地检索了历史记录,或者VS不希望我看到/编辑堆栈的内容?
我可以在必要时发布代码......
谢谢, 尼克
答案 0 :(得分:2)
这可能是因为VS中的编辑器撤消历史记录实现是一般VS撤消历史记录之上的薄包装器。我猜在编辑器的文本撤消历史记录中没有实现Count
,因为VS撤消历史记录上没有实现(IOleUndoManager
仅支持枚举,因此实现Count
会很贵)。
但是,一般情况下, 希望您编辑堆栈的内容。如果撤消堆栈与文本缓冲区不同步,它将基本上破坏撤消并使小型,可爱的动物哭泣。
如果你描述你想要做的事情可能会有所帮助,然后我可以为如何实现这一目标提供更好的答案。