C # Создать скрытую транзакцию - PullRequest
2 голосов
/ 17 ноября 2008

Я использую C # и DSL Tools для VS2005.

Мне нужно создать транзакции, чтобы изменить некоторые данные, но я хочу, чтобы они были скрыты от пользователя, то есть не отображались в списке UNDO в VS2005.

Я пытался отключить UndoManager

store.UndoManager.UndoState = UndoState.Disabled;

Но, отключив его, все существующие предыдущие действия в списке отмен отменяются.

Транзакции имеют свойство isHidden, но оно доступно только для чтения. Я не знаю, как установить скрытый. Я также пытался создать новый UndoManager, но это также свойство только для чтения ...

Как создать транзакцию, которая не отображается в списке отмен?

Я был бы рад написать еще несколько деталей, чтобы прояснить любые сомнения, Большое спасибо, Луис Филипе

[добавлено]

Я рисую фон каждой фигуры, основываясь на значении свойства. Например, зеленый, если верно, красный, если ложь. Мне нужно открыть транзакцию, чтобы нарисовать фон фигуры, но для меня она действует как вычисляемое (только для чтения) свойство.

Ответы [ 2 ]

1 голос
/ 05 января 2009

store.UndoManager.UndoState = UndoState.Disabled;

почти подходит для того, что ты хочешь,

store.UndoManager.UndoState = UndoState.DisabledNoFlush;

это не очистит остальную часть списка отмены :) cyas на обед Луис.

0 голосов
/ 25 ноября 2008

Боюсь, у меня нет точного ответа на ваш вопрос, но ... вы уверены, что вам это действительно нужно? В большинстве случаев вам необходимо изменить некоторые данные в модели, чтобы реагировать на другие изменения в модели. Если это так, вы можете исследовать использование правил, чтобы получить существующую транзакцию в контексте правила, которое вызывает изменения до его фиксации, поэтому вам не нужно создавать новую транзакцию. 1001 *

...