Propagation et réponse aux modifications en attenteResponding to and Propagating Changes

Lorsqu’un élément est créé, supprimé ou mis à jour, vous pouvez écrire du code qui propage la modification à d’autres parties du modèle, ou à des ressources externes telles que des fichiers, de bases de données ou d’autres composants.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.

Dans cette sectionIn This Section

En règle générale, examinez ces techniques dans l’ordre suivant :As a guideline, consider these techniques in the following order:

TechniqueTechnique ScénariosScenarios Pour plus d'informationsFor more information
Définir une propriété de domaine calculée.Define a Calculated domain property. Une propriété de domaine dont la valeur est calculée à partir d’autres propriétés dans le modèle.A domain property whose value is calculated from other properties in the model. Par exemple, un prix qui est la somme des prix des éléments connexes.For example, a price that is the sum of prices of related elements. Propriétés de stockage calculées et personnaliséesCalculated and Custom Storage Properties
Définir une propriété de domaine personnalisé stockage.Define a Custom Storage domain property. Une propriété de domaine stockée dans d’autres parties du modèle ou à l’extérieur.A domain property stored in other parts of the model or externally. Par exemple, vous pouvez analyser une chaîne d’expression dans une arborescence dans le modèle.For example, you could parse an expression string into a tree in the model. Propriétés de stockage calculées et personnaliséesCalculated and Custom Storage Properties
Substituer les gestionnaires de modification telles que OnValueChanging et OnDeletingOverride change handlers such as OnValueChanging and OnDeleting Synchroniser les différents éléments et de synchroniser les valeurs externes avec le modèle.Keep different elements in sync, and keep external values in sync with the model.

Limiter les valeurs pour les plages définies.Constrain values to defined ranges.

Appelé juste avant et après la valeur de propriété et d’autres modifications.Called immediately before and after property value and other changes. Vous pouvez mettre fin à la modification en levant une exception.You can terminate the change by throwing an exception.
Gestionnaires de modification de la valeur de propriété du domaineDomain Property Value Change Handlers
RèglesRules Vous pouvez définir des règles qui sont en attente de l’exécution juste avant la fin d’une transaction dans laquelle un changement s’est produit.You can define rules that are queued for execution just before the end of a transaction in which a change has happened. Ils ne sont pas exécutées sur l’annulation ou de restauration par progression.They are not executed on Undo or Redo. Utilisez-les pour qu’une partie de la banque reste synchronisé avec un autre.Use them to keep one part of the store in synch with another. Propagation de modifications dans le modèle par des règlesRules Propagate Changes Within the Model
Stocker les événementsStore Events Le magasin de modélisation fournit des notifications d’événements tels que l’ajout ou suppression d’un élément ou un lien ou modification de la valeur d’une propriété.The modeling store provides notifications of events such as adding or deleting an element or link, or changing the value of a property. L’événement est également exécuté sur Annuler et rétablir.The event is also executed on Undo and Redo. Événements de la banque permet de mettre à jour les valeurs qui ne sont pas dans le magasin.Use store events to update values that are not in the store. Propagation de modifications en dehors du modèle par des gestionnaires d’événementsEvent Handlers Propagate Changes Outside the Model
Événements .NET.NET Events Les formes ont des gestionnaires d’événements qui répondent aux clics de souris et d’autres manipulations.Shapes have event handlers that respond to mouse clicks and other gestures. Vous devez l’inscrire pour ces événements pour chaque objet.You have to register for these events for each object. L’inscription est généralement le cas dans une substitution de InitializeInstanceResources et doit être effectuée pour chaque élément.Registration is typically done in an override of InitializeInstanceResources, and must be done for each element.

Ces événements se produisent généralement en dehors d’une transaction.These events usually occur outside a transaction.
Guide pratique pour intercepter un événement de clic sur une forme ou un décorateurHow to: Intercept a Click on a Shape or Decorator
Règles de limitesBounds Rules Une règle de limites est utilisée en particulier pour contraindre les limites d’une forme.A bounds rule is used specifically to constrain the bounds of a shape. Emplacement et de la taille de la forme contrainte par BoundsRulesBoundsRules Constrain Shape Location and Size
Règles de sélectionSelection rules Règles de sélection contraignent spécifiquement à ce que l’utilisateur peut sélectionner.Selection rules specifically constrain what the user can select. Guide pratique pour accéder à et contraindre la sélection actuelleHow to: Access and Constrain the Current Selection
OnAssocatedPropertyChangedOnAssocatedPropertyChanged Indiquer les États des éléments de modèle à l’aide des fonctionnalités des formes et des connecteurs tels que les clichés instantanés, pointes de flèche, couleur et les largeurs de ligne et le style.Indicate the model elements' states using features of shapes and connectors such as shadow, arrowheads, color, and line widths and style. Mise à jour des formes et des connecteurs pour refléter le modèleUpdating Shapes and Connectors to Reflect the Model

Comparaison des règles et des événements de la banqueComparing Rules and Store Events

Utilitaires de notification de modification, les règles et les événements sont exécutées lorsque des modifications se produisent dans un modèle.Change notifiers, rules, and events are run when changes occur in a model.

Les règles sont généralement appliquées à la transaction de fin dans laquelle la modification s’est produite, et les événements sont appliqués après que les modifications dans une transaction sont validées.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.

Événements de la banque permet de synchroniser le modèle avec des objets en dehors de la banque et les règles pour maintenir la cohérence dans le magasin.Use store events to synchronize the model with objects outside the Store, and rules to maintain consistency within the Store.

  • Création de règles personnalisées vous créez une règle personnalisée comme une classe dérivée à partir d’une règle abstraite.Creating Custom Rules You create a custom rule as a derived class from an abstract rule. Vous devez également informer l’infrastructure de la règle personnalisée.You must also notify the framework about the custom rule. Pour plus d’informations, consultez propager les modifications dans le modèle de règles.For more information, see Rules Propagate Changes Within the Model.

  • S’abonner aux événements avant de vous abonner à un événement, créez un gestionnaire d’événements et d’un délégué.Subscribing to Events Before you can subscribe to an event, create an event handler and delegate. Utilisez ensuite le EventManagerDirectorypropriété pour vous abonner à l’événement.Then use the EventManagerDirectoryproperty to subscribe to the event. Pour plus d’informations, consultez gestionnaires propager les modifications en dehors du modèle d’événement.For more information, see Event Handlers Propagate Changes Outside the Model.

  • Annulation des modifications lorsque vous annulez une transaction, les événements sont déclenchés, mais les règles ne sont pas appliquées.Undoing Changes When you undo a transaction, events are raised, but rules are not applied. Si une règle modifie une valeur, vous annulez la modification, la valeur est réinitialisée à la valeur d’origine au cours de l’action d’annulation.If a rule changes a value and you undo that change, the value is reset to the original value during the undo action. Lorsqu’un événement est déclenché, vous devez modifier manuellement la valeur à sa valeur d’origine.When an event is raised, you must manually change the value back to its original value. Pour en savoir plus sur transactons et d’annulation, consultez Comment : utiliser les Transactions pour mettre à jour le modèle.To learn more about transactons and undo, see How to: Use Transactions to Update the Model.

  • Passage des Arguments d’événement à des règles et des événements les deux événements et les règles sont transmises un EventArgs de modifier le modèle de paramètre qui contient des informations sur la façon.Passing Event Arguments to Rules and Events Both events and rules are passed an EventArgs parameter that has information about how the model changed.

Voir aussiSee Also

Comment : intercepter un clic sur une forme ou un élément décoratif How to: Intercept a Click on a Shape or Decorator
Écriture de code pour personnaliser un langage spécifique à un domaineWriting Code to Customise a Domain-Specific Language