Responder a los cambios y propagarlosResponding to and Propagating Changes

Cuando un elemento se crea, elimina o actualiza, puede escribir código que se propaga el cambio a otras partes del modelo o a recursos externos como archivos, bases de datos u otros componentes.When an element is created, deleted or updated, you can write code that propagates the change to other parts of the model, or to external resources such as files, databases, or other components.

En esta secciónIn This Section

Como norma, tenga en cuenta estas técnicas en el siguiente orden:As a guideline, consider these techniques in the following order:

TécnicaTechnique EscenariosScenarios Para obtener más informaciónFor more information
Defina una propiedad de dominio calculado.Define a Calculated domain property. Una propiedad de dominio cuyo valor se calcula a partir de otras propiedades en el modelo.A domain property whose value is calculated from other properties in the model. Por ejemplo, un precio que es la suma de precios de elementos relacionados.For example, a price that is the sum of prices of related elements. Propiedades calculadas y de almacenamiento personalizadoCalculated and Custom Storage Properties
Defina una propiedad de dominio de almacenamiento personalizado.Define a Custom Storage domain property. Una propiedad de dominio que se almacenan en otras partes del modelo o externamente.A domain property stored in other parts of the model or externally. Por ejemplo, podría analizar una cadena de expresión en un árbol en el modelo.For example, you could parse an expression string into a tree in the model. Propiedades calculadas y de almacenamiento personalizadoCalculated and Custom Storage Properties
Invalidar los controladores de cambio como OnValueChanging y OnDeletingOverride change handlers such as OnValueChanging and OnDeleting Mantener los distintos elementos sincronizados y mantenerlos sincronizados con el modelo de valores externos.Keep different elements in sync, and keep external values in sync with the model.

Restringir los valores a intervalos definidos.Constrain values to defined ranges.

Se llama inmediatamente antes y después el valor de propiedad y otros cambios.Called immediately before and after property value and other changes. Puede finalizar el cambio iniciando una excepción.You can terminate the change by throwing an exception.
Controladores de los cambios de valor de propiedad de dominioDomain Property Value Change Handlers
ReglasRules Puede definir reglas que se ponen en cola para su ejecución justo antes del final de una transacción en el que se ha producido un cambio.You can define rules that are queued for execution just before the end of a transaction in which a change has happened. No se ejecutan en Deshacer o rehacer.They are not executed on Undo or Redo. Usan para mantener sincronizados en sí una parte de la tienda.Use them to keep one part of the store in synch with another. Las reglas propagan los cambios dentro del modeloRules Propagate Changes Within the Model
Eventos de almacénStore Events El almacén de modelado proporciona notificaciones de eventos, como agregar o eliminar un elemento o vínculo o cambiar el valor de una propiedad.The modeling store provides notifications of events such as adding or deleting an element or link, or changing the value of a property. El evento también se ejecuta en Deshacer y rehacer.The event is also executed on Undo and Redo. Usar eventos de almacén para actualizar los valores que no están en el almacén.Use store events to update values that are not in the store. Los controladores de eventos propagan cambios fuera del modeloEvent Handlers Propagate Changes Outside the Model
Eventos de .NET.NET Events Las formas tienen controladores de eventos que responden a los clics del mouse y otros movimientos.Shapes have event handlers that respond to mouse clicks and other gestures. Tiene que registrar estos eventos para cada objeto.You have to register for these events for each object. Registro normalmente se realiza en un reemplazo del InitializeInstanceResources y debe realizarse para cada elemento.Registration is typically done in an override of InitializeInstanceResources, and must be done for each element.

Normalmente, estos eventos se producen fuera de una transacción.These events usually occur outside a transaction.
Cómo: Interceptar un clic en una forma o decoradorHow to: Intercept a Click on a Shape or Decorator
Reglas de límitesBounds Rules Una regla de límites se utiliza específicamente para restringir los límites de una forma.A bounds rule is used specifically to constrain the bounds of a shape. Ubicación y tamaño de las reglas de restricción de formas BoundsRulesBoundsRules Constrain Shape Location and Size
Reglas de selecciónSelection rules Las reglas de selección específicamente restringen lo que el usuario puede seleccionar.Selection rules specifically constrain what the user can select. Cómo: Tener acceso a una selección y restringir la selección actualHow to: Access and Constrain the Current Selection
OnAssocatedPropertyChangedOnAssocatedPropertyChanged Indicar los Estados de los elementos del modelo con las características de formas y conectores como instantáneas, puntas de flecha, color y ancho de línea y el estilo.Indicate the model elements' states using features of shapes and connectors such as shadow, arrowheads, color, and line widths and style. Actualizar formas y conectores para reflejar el modeloUpdating Shapes and Connectors to Reflect the Model

Comparar las reglas y los eventos de almacénComparing Rules and Store Events

Cambio notificadores, reglas y los eventos se ejecutan cuando se producen cambios en un modelo.Change notifiers, rules, and events are run when changes occur in a model.

Normalmente se aplican las reglas en el final de la transacción en la que se ha producido el cambio y eventos se aplican después de confirmadas los cambios en una transacción.Rules are usually applied at the end transaction in which the change has occurred, and events are applied after changes in a transaction are committed.

Usar eventos de almacén para sincronizar el modelo con objetos fuera del almacén y las reglas para mantener la coherencia en el almacén.Use store events to synchronize the model with objects outside the Store, and rules to maintain consistency within the Store.

  • Crear reglas personalizadas crear una regla personalizada como una clase derivada de una regla abstracta.Creating Custom Rules You create a custom rule as a derived class from an abstract rule. También debe notificar el marco de trabajo acerca de la regla personalizada.You must also notify the framework about the custom rule. Para obtener más información, consulte propagar los cambios en el modelo de reglas de.For more information, see Rules Propagate Changes Within the Model.

  • Suscribirse a eventos para poder suscribirse a un evento, cree un controlador de eventos y el delegado.Subscribing to Events Before you can subscribe to an event, create an event handler and delegate. A continuación, utilice el EventManagerDirectorypropiedad que se va a suscribirse al evento.Then use the EventManagerDirectoryproperty to subscribe to the event. Para obtener más información, consulte controladores propagar cambios fuera el modelo de evento.For more information, see Event Handlers Propagate Changes Outside the Model.

  • Deshacer cambios al deshacer una transacción, se generan eventos, pero no se aplican las reglas.Undoing Changes When you undo a transaction, events are raised, but rules are not applied. Si una regla cambia un valor y deshacer este cambio, el valor se restablece al valor original durante la acción de deshacer.If a rule changes a value and you undo that change, the value is reset to the original value during the undo action. Cuando se genera un evento, debe cambiar manualmente el valor a su valor original.When an event is raised, you must manually change the value back to its original value. Para obtener más información sobre transactons y deshacer, consulte Cómo: usar transacciones para actualizar el modelo.To learn more about transactons and undo, see How to: Use Transactions to Update the Model.

  • Pasar argumentos de evento a los eventos y las reglas de ambos eventos y se pasan las reglas de un EventArgs cambia de parámetro que tiene información sobre cómo el modelo.Passing Event Arguments to Rules and Events Both events and rules are passed an EventArgs parameter that has information about how the model changed.

Vea tambiénSee Also