Share via


Rispondere e propagare le modifiche

Quando un elemento viene creato, eliminato o aggiornato, è possibile scrivere codice che propaga la modifica ad altre parti del modello o a risorse esterne, ad esempio file, database o altri componenti.

Riferimento

Come linea guida, considerare queste tecniche nell'ordine seguente:

Tecnica Scenari Ulteriori informazioni
Definire una proprietà di dominio calcolato. Proprietà di dominio il cui valore viene calcolato da altre proprietà nel modello. Ad esempio, un prezzo che corrisponde alla somma dei prezzi degli elementi correlati. Proprietà di archiviazione calcolate e personalizzate
Definire una proprietà di dominio Archiviazione personalizzata. Proprietà di dominio archiviata in altre parti del modello o esternamente. Ad esempio, è possibile analizzare una stringa di espressione in un albero nel modello. Proprietà di archiviazione calcolate e personalizzate
Eseguire l'override dei gestori delle modifiche, ad esempio OnValueChanging e OnDeleting Mantenere sincronizzati elementi diversi e mantenere sincronizzati i valori esterni con il modello.

Vincola i valori agli intervalli definiti.

Chiamato immediatamente prima e dopo il valore della proprietà e altre modifiche. È possibile terminare la modifica generando un'eccezione.
Gestori di modifica del valore delle proprietà del dominio
Regole È possibile definire regole accodate per l'esecuzione subito prima della fine di una transazione in cui è stata apportata una modifica. Non vengono eseguite su Annulla o Ripeti. Usarli per mantenere sincronizzata una parte del negozio con un'altra. Le regole propagano le modifiche all'interno del modello
Eventi dello Store L'archivio di modellazione fornisce notifiche di eventi come l'aggiunta o l'eliminazione di un elemento o un collegamento o la modifica del valore di una proprietà. L'evento viene eseguito anche su Annulla e Ripeti. Usare gli eventi di archiviazione per aggiornare i valori che non si trovano nell'archivio. I gestori eventi propagano le modifiche al di fuori del modello
Eventi .NET Le forme hanno gestori eventi che rispondono ai clic del mouse e ad altri movimenti. È necessario registrarsi per questi eventi per ogni oggetto. La registrazione viene in genere eseguita in un override di InitializeInstanceResources e deve essere eseguita per ogni elemento.

Questi eventi si verificano in genere all'esterno di una transazione.
Procedura: Intercettare un clic su una forma o su un elemento Decorator
Regole dei limiti Una regola dei limiti viene utilizzata in modo specifico per vincolare i limiti di una forma. Le regole associate (BoundsRules) vincolano posizione e dimensione delle forme
Regole di selezione Le regole di selezione vincolano specificamente ciò che l'utente può selezionare. Procedura: Accedere e vincolare la selezione corrente
OnAssocatedPropertyChanged Indicare gli stati degli elementi del modello utilizzando caratteristiche di forme e connettori, ad esempio ombreggiatura, punte di direzione, colore e larghezza e stile della linea. Aggiornamento di forme e di connettori per riflettere il modello

Confrontare regole ed eventi di archiviazione

I classificatori di modifica, le regole e gli eventi vengono eseguiti quando si verificano modifiche in un modello.

Le regole vengono in genere applicate alla transazione finale in cui si è verificata la modifica e gli eventi vengono applicati dopo il commit delle modifiche in una transazione.

Usare gli eventi di archiviazione per sincronizzare il modello con oggetti esterni allo Store e regole per mantenere la coerenza all'interno dello Store.

  • Creazione di regole personalizzate Viene creata una regola personalizzata come classe derivata da una regola astratta. È anche necessario notificare al framework la regola personalizzata. Per altre informazioni, vedere Regole propagate modifiche all'interno del modello.

  • Sottoscrizione di eventi Prima di poter sottoscrivere un evento, creare un gestore eventi e un delegato. Usare quindi la EventManagerDirectoryproprietà per sottoscrivere l'evento. Per altre informazioni, vedere Gestori eventi propagare le modifiche all'esterno del modello.

  • Annullamento delle modifiche Quando si annulla una transazione, vengono generati eventi, ma le regole non vengono applicate. Se una regola modifica un valore e si annulla tale modifica, il valore viene reimpostato sul valore originale durante l'azione di annullamento. Quando viene generato un evento, è necessario modificare manualmente il valore impostandone il valore originale. Per altre informazioni sulle transazioni e l'annullamento, vedere Procedura: Usare transazioni per aggiornare il modello.

  • Il passaggio di argomenti evento a regole ed eventi Vengono passati entrambi gli eventi e le regole un EventArgs parametro che contiene informazioni sulla modifica del modello.