Répondre aux modifications et les propager

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, des bases de données ou d’autres composants.

Informations de référence

À titre indicatif, tenez compte de ces techniques dans l’ordre suivant :

Technique Scénarios Informations supplémentaires
Définissez une propriété de domaine calculée. Propriété de domaine dont la valeur est calculée à partir d’autres propriétés dans le modèle. Par exemple, un prix qui correspond à la somme des prix des éléments connexes. Propriétés de stockage calculées et personnalisées
Définissez une propriété de domaine de stockage personnalisée. Propriété de domaine stockée dans d’autres parties du modèle ou en externe. Par exemple, vous pouvez analyser une chaîne d’expression dans une arborescence du modèle. Propriétés de stockage calculées et personnalisées
Remplacer les gestionnaires de modifications tels que OnValueChanging et OnDeleting Synchronisez les différents éléments et synchronisez les valeurs externes avec le modèle.

Limitez les valeurs à des plages définies.

Appelé immédiatement avant et après la valeur de propriété et d’autres modifications. Vous pouvez terminer la modification en levant une exception.
Gestionnaire de modification de la valeur de propriété du domaine
Règles Vous pouvez définir des règles qui sont mises en file d’attente pour exécution juste avant la fin d’une transaction dans laquelle une modification s’est produite. Elles ne sont pas exécutées lors de l’annulation ou de la restauration par progression. Utilisez-les pour synchroniser une partie du magasin avec une autre. Propagation de modifications dans le modèle par des règles
Événements du magasin Le magasin de modélisation fournit des notifications d’événements tels que l’ajout ou la suppression d’un élément ou d’un lien, ou la modification de la valeur d’une propriété. L’événement est également exécuté lors de l’annulation ou de la restauration par progression. Utilisez des événements du magasin pour mettre à jour des valeurs qui ne se trouvent pas dans le magasin. Propagation de modifications en dehors du modèle par des gestionnaires d'événements
Événements .NET Les formes ont des gestionnaires d’événements qui répondent aux clics de souris et à d’autres mouvements. Vous devez vous inscrire à ces événements pour chaque objet. L’inscription est généralement effectuée en remplacement d’InitializeInstanceResources et doit être effectuée pour chaque élément.

Ces événements se produisent généralement en dehors d’une transaction.
Guide pratique pour intercepter un événement de clic sur une forme ou un décorateur
Règles de limites Une règle de limites est utilisée spécifiquement pour limiter les limites d’une forme. Emplacement et de la taille de la forme contrainte par BoundsRules
Règles de sélection Les règles de sélection limitent spécifiquement ce que l’utilisateur peut sélectionner. Comment : accéder à et contraindre la sélection actuelle
OnAssocatedPropertyChanged Indiquez les états des éléments du modèle à l’aide des caractéristiques des formes et des connecteurs tels que l’ombre, les pointes de flèche, la couleur, ainsi que la largeur et le style des lignes. Mise à jour des formes et des connecteurs pour refléter le modèle

Comparer les règles et les événements du magasin

Les notifications de modification, les règles et les événements sont exécutés lorsque des modifications se produisent dans un modèle.

Les règles sont généralement appliquées à la transaction finale dans laquelle la modification s’est produite, et les événements sont appliqués après la validation des modifications dans une transaction.

Utilisez des événements du magasin pour synchroniser le modèle avec des objets en dehors du Microsoft Store, et des règles pour maintenir la cohérence au sein du Microsoft Store.

  • Création de règles personnalisées Vous créez une règle personnalisée en tant que classe dérivée à partir d’une règle abstraite. Vous devez également notifier l’infrastructure de la règle personnalisée. Pour plus d’informations, consultez Propagation de modifications dans le modèle par des règles.

  • Abonnement à des événements Avant de pouvoir vous abonner à un événement, créez un gestionnaire d’événements et un délégué. Utilisez ensuite la propriétéEventManagerDirectory pour vous abonner à l’événement. Pour plus d’informations, consultez Propagation de modifications en dehors du modèle par des gestionnaires d’événements.

  • Annulation des modifications Lorsque vous annulez une transaction, des événements sont déclenchés, mais les règles ne sont pas appliquées. Si une règle modifie une valeur et que vous annulez cette modification, la valeur est réinitialisée à la valeur d’origine pendant l’action d’annulation. Lorsqu’un événement est déclenché, vous devez rétablir manuellement la valeur d’origine. Pour en savoir plus sur les transactions et l’annulation, consultez Guide pratique pour utiliser des transactions pour mettre à jour le modèle.

  • Passage d’arguments d’événement à des règles et des événements Les événements et les règles reçoivent un paramètre EventArgs qui contient des informations sur la façon dont le modèle a été modifié.