Pregunta

Estoy usando C # y DSL Tools para VS2005.

Necesito crear Transacciones para cambiar algunos datos, pero quiero que se oculten al usuario, es decir, que no se muestren en la lista UNDO en VS2005.

Lo intenté desactivando el UndoManager

store.UndoManager.UndoState = UndoState.Disabled;

Pero al deshabilitarlo se borran todas las acciones anteriores existentes en la lista de deshacer.

Las transacciones tienen una propiedad llamada " isHidden " pero es de solo lectura, no sé cómo puedo configurarlo como oculto. También intenté crear un nuevo UndoManager pero también es una propiedad de solo lectura ...

¿Cómo puedo crear una transacción que no aparece en la lista de deshacer?

Estaré encantado de escribir algunos detalles más para aclarar cualquier duda, Muchas gracias, Luís Filipe

[agregado]

pinto el fondo de cada forma según un valor de propiedad. Por ejemplo, verde si es verdadero, rojo si es falso. Necesito abrir una transacción para pintar el fondo de la forma, pero para mí se comporta como una propiedad calculada (solo lectura).

¿Fue útil?

Solución

store.UndoManager.UndoState = UndoState.Disabled ;

es casi correcto para lo que quieres,

store.UndoManager.UndoState = UndoState.DisabledNoFlush;

esto no borrará el resto de la lista de deshacer :) cyas en el almuerzo Luis.

Otros consejos

Me temo que no tengo una respuesta exacta para tu pregunta, pero ... ¿estás seguro de que realmente la necesitas? La mayoría de las veces cuando necesita cambiar algunos datos en el modelo es reaccionar a otros cambios en el modelo. Si ese es el caso, es posible que desee investigar el uso de reglas para obtener una transacción existente dentro del contexto de la regla que causa los cambios antes de que se confirme, por lo que no tiene la necesidad de crear una nueva transacción en primer lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top