C#创建一个隐藏的事务

时间:2008-11-17 16:34:23

标签: c# .net dsl dsl-tools

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

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

我尝试通过禁用UndoManager

store.UndoManager.UndoState = UndoState.Disabled;

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

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

如何创建未显示在撤消列表中的交易?

我很乐意写下更多细节,以澄清任何疑问, 非常感谢你, 路易斯菲利普

[加入]

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

2 个答案:

答案 0 :(得分:1)

store.UndoManager.UndoState = UndoState.Disabled;

几乎是你想要的,

store.UndoManager.UndoState = UndoState.DisabledNoFlush;

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

答案 1 :(得分:0)

我担心我对你的问题没有确切的答案,但是......你确定你真的需要吗?大多数情况下,当您需要更改模型中的某些数据时,是对模型中的其他更改做出反应。如果是这种情况,您可能需要调查使用规则来获取规则上下文中的现有事务,该事务在提交之前导致更改,因此您不需要首先创建新事务。 / p>