Вопрос

Я использую инструменты C# и DSL для VS2005.

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

Я попробовал отключить UndoManager

store.UndoManager.UndoState = UndoState.Disabled;

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

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

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

Я был бы рад написать более подробную информацию, чтобы прояснить любые сомнения, большое спасибо, Luís Filipe

[добавлен]

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

Это было полезно?

Решение

store.UndoManager.UndoState = UndoState.Disabled;

почти соответствует тому, что ты хочешь,

store.UndoManager.UndoState = UndoState.DisabledNoFlush;

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top