2008-11-17 72 views
2

我正在使用VS2005的C#和DSL工具。C#創建一個隱藏的事務

我需要創建事務來更改一些數據,但我希望它們對用戶隱藏,也就是說,不顯示在VS2005的UNDO列表中。

我試圖通過禁用的UndoManager

store.UndoManager.UndoState = UndoState.Disabled; 

但是通過禁用它在撤銷列表中的所有現有以前的行爲將被清除。

交易有一個名爲「isHidden」的屬性,但它是隻讀的,我不知道如何設置隱藏。 我也嘗試過創建一個新的UndoManager,但它也是隻讀屬性...

我該如何創建一個不會出現在撤消列表中的事務?

我很高興寫一些更多的細節,以便澄清任何疑問, 非常感謝你, 路易斯·菲利佩

[添加]

我畫基於屬性各種形狀的背景值。例如,如果爲真則爲綠色,如果爲假則爲紅色。我需要打開一個事務來繪製形狀的背景,但對我來說,它表現爲一個計算(只讀)屬性。

回答

1

store.UndoManager.UndoState = UndoState.Disabled;

是ü想要的東西差不多吧,

store.UndoManager.UndoState = UndoState.DisabledNoFlush;

在午餐路易斯這不會清除撤銷列表的其餘部分:) cyas。

+0

雖然這種方法已過時,但似乎可行。 如果有人知道如何達到不使用過時方法的相同目標,我將非常感激。 謝謝 – 2009-01-05 11:56:06

0

恐怕我沒有你的問題的確切答案,但是......你確定你真的需要這個嗎?大多數情況下,當你需要改變模型中的某些數據時,會對模型中的其他更改做出反應。如果是這樣的話,您可能需要調查使用規則在規則的上下文中獲取現有事務,以便在提交之前導致更改,因此您無需首先創建新事務。

+0

我繪製基於屬性值的每個形狀的背景。例如,如果爲真則爲綠色,如果爲假則爲紅色。我需要打開一個事務來繪製形狀的背景,但對我來說,它表現爲一個計算(只讀)屬性。 – 2008-12-02 10:23:58