Reagieren auf und Propagieren von Änderungen
Wenn ein Element erstellt, aktualisiert oder gelöscht wird, können Sie Code, der die Änderung in anderen Teilen des Modells weitergegeben, oder auf externe Ressourcen wie Dateien, Datenbanken oder andere Komponenten schreiben.
In diesem Abschnitt
Als Richtlinie sollten Sie diese Techniken in der folgenden Reihenfolge:
Technik |
Szenarien |
Weitere Informationen |
---|---|---|
Definieren einer berechneten Domäneneigenschaft. |
Die Domäneneigenschaft, deren Wert eines anderen Eigenschaften im Modell berechnet wird.Zum Beispiel ein Preis, der die Summe von Preisen von verwandten Elementen befindet. |
|
Definieren Sie eine benutzerdefinierte Speicherdomäneneigenschaft. |
Die Domäneneigenschaft in anderen Teilen des Modells extern oder legt diese fest.Sie können beispielsweise eine Ausdruckszeichenfolge in eine Struktur im Modell analysieren. |
|
Überschreibungen den Modus für OnDeleting und wie OnValueChanging |
Halten Sie verschiedene Elemente synchron, und halten Sie externe Werte konsistent mit dem Modell. Schränken Sie Werte an definierten Bereichen ein. Wird unmittelbar vor und nach Eigenschaftswert und ändert.Sie können die Änderung zu beenden, indem Sie eine Ausnahme auslösen. |
|
Regeln |
Sie können Regeln definieren, die für die Ausführung direkt vor dem Ende der Transaktion in die Warteschlange gestellt werden, in der eine Änderung erfolgt ist.Sie sind nicht auf Undo oder Redo ausgeführt.Verwenden Sie es, um einen Teil des Arbeitsspeichers synchron zu halten mit anderen. |
|
Speicher-Ereignisse |
Der Modellierungs Datenspeicher stellt Benachrichtigungen über Ereignisse wie das Hinzufügen oder Löschen eines Elements oder des Links oder Ändern des Werts einer Eigenschaft.Das Ereignis wird auch für Undo und Redo ausgeführt.Verwenden Sie Speicher von Ereignissen, um Werte zu aktualisieren, die nicht im Speicher befinden. |
Ereignishandler propagieren Änderungen außerhalb des Modells |
.NET-Ereignisse |
Forms verfügen über Ereignishandler, die auf Mausklicks reagiert und anderen wechselt den Stift.Sie müssen für diese Ereignisse für jedes Objekt registrieren.Registrierung wird in einer Überschreibung der InitializeInstanceResources in der Regel ausgeführt, und muss für jedes Element ausgeführt werden. Diese Ereignisse treten normalerweise außerhalb einer Transaktion auf. |
Gewusst wie: Abfangen eines Klicks auf eine Form oder einen Decorator |
Grenzen-Regeln |
Eine Grenzen die Regel ist speziell einschränken, die Begrenzungen einer Form verwendet. |
|
Auswahlregeln |
Beschränken Auswahlregeln ausdrücklich ein, den der Benutzer auswählen kann. |
Gewusst wie: Zugreifen auf die und Einschränken der aktuellen Auswahl |
OnAssocatedPropertyChanged |
Geben Sie die Bedingungen der Modellelemente an, die Funktionen von Formen und Konnektoren wie Schatten, Pfeilspitzen, Farbe und Linienstärken und Format verwenden. |
Aktualisieren von Formen und Konnektoren zur Darstellung des Modells |
Regeln und vergleichen Speicher-Ereignisse
Ändern Sie Melder, Regeln und Ereignisse werden ausgeführt, wenn Änderungen in einem Modell erfolgen.
Die Regeln werden normalerweise an der Transaktion zum Ende angewendet, in der die Änderung aufgetreten ist, und Ereignisse angewendet werden, nachdem Änderungen in einer Transaktion durchgeführt wurden.
Verwenden Sie Speicher, um das Modell zu Objekten außerhalb des Arbeitsspeichers zu synchronisieren und Regeln, die Konsistenz im Speicher beizubehalten.
Erstellen von benutzerdefinierten Regeln erstellen Sie eine benutzerdefinierte Regel wie eine abgeleitete Klasse von einer abstrakten Regel.Sie müssen das Framework für die benutzerdefinierte Regel auch benachrichtigen.Weitere Informationen finden Sie unter Regeln propagieren Änderungen im Modell.
Um Ereignisse abonnieren , bevor Sie ein Ereignis abonnieren können, einen Ereignishandler und einen Delegaten.Verwenden Sie dann die Eigenschaft EventManagerDirectory, um das Ereignis zu abonnieren.Weitere Informationen finden Sie unter Ereignishandler propagieren Änderungen außerhalb des Modells.
Änderungen werden rückgängig gemacht , wenn Sie eine Transaktion rückgängig machen Ereignisse werden ausgelöst, sondern Regeln werden nicht übernommen.Wenn eine Regel einen Wert ändert, und Sie diese Änderung rückgängig machen, wird der Wert als Rückgängigaktion den ursprünglichen Wert zurückgesetzt.Wenn ein Ereignis ausgelöst wird, müssen Sie den Wert zurück auf den ursprünglichen Wert manuell ändern.Um mehr darüber zu erfahren und transactons auf Rückgängig, finden Sie unter Gewusst wie: Verwenden von Transaktionen zum Aktualisieren des Modells.
Ereignis-Argumente zu den Regeln und zu den Regeln und - EreignissenEreignis übergeben werden**,**EventArgs einem Parameter übergeben, das Informationen enthält darüber, wie sich das Modell geändert wurde.
Siehe auch
Konzepte
Gewusst wie: Abfangen eines Klicks auf eine Form oder einen Decorator
Weitere Ressourcen
Schreiben von Code zum Anpassen einer domänenspezifischen Sprache