Verwenden des Bearbeitungsbereichs
Im UsingEditingScope-Beispiel wird veranschaulicht, wie eine Gruppe von Änderungen per Batch verarbeitet wird, sodass diese in einer einzigen automatischen Einheit rückgängig gemacht werden können. Die von einem Aktivitätsdesigner vorgenommenen Änderungen werden standardmäßig automatisch in das Rückgängig/Wiederholen-System integriert.
Zeigt
Bearbeitungsbereich und Rückgängig und Wiederholen.
Diskussion (Discussion)
In diesem Beispiel wird veranschaulicht wie ein Satz von Änderungen an der ModelItem-Struktur in einem einzelnen Arbeitsschritt als Stapel verarbeitet wird. Beachten Sie, dass beim Binden an ModelItem-Werte direkt von einem WPF-Designer Änderungen automatisch übernommen werden. In diesem Beispiel wird veranschaulicht, was erforderlich ist, wenn mehrere Änderungen, die als Stapel verarbeitet werden sollen, durch imperativen Code vorgenommen werden, und nicht als eine Änderung.
In diesem Beispiel werden drei Aktivitäten hinzugefügt. Wenn Bearbeitung beginnt, wird BeginEdit in einer Instanz von ModelItem aufgerufen. An der ModelItem-Struktur innerhalb dieses Bearbeitungsbereichs vorgenommene Änderungen werden als Stapel verarbeitet. Der BeginEdit-Befehl gibt einen EditingScope zurück, der verwendet werden kann, um diese Instanz zu steuern. OnComplete oder OnRevert kann aufgerufen werden, um einen Commit für den Bearbeitungsbereich auszuführen oder ihn wiederherzustellen.
Sie können auch EditingScope-Objekte schachteln, sodass mehrere Sätze von Änderungen als Teil eines größeren Bearbeitungsbereichs verfolgt werden und einzeln gesteuert werden können. Ein Szenario für diese Funktion wäre, wenn ein Commit für Änderungen von mehreren Dialogfeldern ausgeführt werden muss oder sie getrennt wiederhergestellt werden müssen, wobei alle Änderungen als einzelner atomarischer Vorgang behandelt werden. In diesem Beispiel werden die Bearbeitungsbereiche mit ObservableCollection<T> des Typs ModelEditingScope gestapelt. ObservableCollection<T> wird verwendet, damit die Tiefe der Schachtelung auf der Designeroberfläche angezeigt werden kann.
So können Sie das Beispiel einrichten, erstellen und ausführen
Erstellen Sie das Beispiel, und führen Sie es aus. Verwenden Sie dann die Schaltflächen links, um den Workflow zu ändern.
Klicken Sie auf Bearbeitungsbereich öffnen.
Dieser Befehl ruft BeginEdit auf, womit ein Bearbeitungsbereich erstellt und auf den Bearbeitungsstapel verschoben wird.
Dem ausgewählten ModelItem werden dann drei Aktivitäten hinzugefügt. Beachten Sie, dass, wenn der Bearbeitungsbereich nicht mit BeginEdit geöffnet worden wäre, drei neue Aktivitäten auf dem Designerzeichenbereich angezeigt werden würden. Da dieser Vorgang immer noch in EditingScope aussteht, wird der Designer noch nicht aktualisiert.
Klicken Sie auf Bearbeitungsbereich schließen, um einen Commit für den Bearbeitungsbereich auszuführen. Drei Aktivitäten werden im Designer angezeigt.