2

我正在为 VS2005 使用 C# 和 DSL 工具。

我需要创建事务来更改一些数据,但我希望它们对用户隐藏,这意味着不显示在 VS2005 的 UNDO 列表中。

我尝试禁用 UndoManager

store.UndoManager.UndoState = UndoState.Disabled;

但是通过禁用它,撤消列表中所有现有的先前操作都将被清除。

事务有一个名为“isHidden”的属性,但它是只读的,我不知道如何将其设置为隐藏。我也尝试创建一个新的 UndoManager 但它也是一个只读属性......

如何创建未出现在撤消列表中的事务?

我很乐意写更多细节以澄清任何疑问,非常感谢你,Luís Filipe

[添加]

我根据属性值绘制每个形状的背景。例如,如果为真,则为绿色,如果为假,则为红色。我需要打开一个事务来绘制形状的背景,但对我来说它表现为一个计算的(只读)属性。

4

2 回答 2

1

store.UndoManager.UndoState = UndoState.Disabled;

几乎适合你想要的,

store.UndoManager.UndoState = UndoState.DisabledNoFlush;

这不会清除撤消列表的其余部分 :) Luis 午餐时的 cyas。

于 2009-01-05T11:52:22.857 回答
0

恐怕我对你的问题没有确切的答案,但是......你确定你真的需要吗?大多数时候,您需要更改模型中的某些数据是为了对模型中的其他更改做出反应。如果是这种情况,您可能希望使用规则进行调查,以便在提交之前导致更改的规则上下文中获取现有事务,这样您就不需要首先创建新事务。

于 2008-11-24T22:36:17.053 回答