Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Im Beispiel 'UsingEditingScope' wird veranschaulicht, wie Sie eine Reihe von Änderungen zusammenfassen, sodass sie in einer einzelnen atomischen 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
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 Änderungen automatisch angewendet werden, wenn sie direkt von einem WPF-Designer an ModelItem Werte gebunden werden. In diesem Beispiel wird gezeigt, was ausgeführt werden muss, wenn mehrere Änderungen im Batch über imperativen Code und nicht über eine einzelne Änderung vorgenommen werden.
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 ein EditingScope zurück, das zur Steuerung dieser Instanz verwendet werden kann. Entweder OnComplete oder OnRevert kann aufgerufen werden, um entweder den Bearbeitungsbereich zu bestätigen oder ihn rückgängig zu machen.
Sie können EditingScope Objekte verschachteln, mit denen mehrere Gruppen von Änderungen als Teil eines größeren Bearbeitungsumfangs nachverfolgt und einzeln gesteuert werden können. Ein Szenario, das dieses Feature verwenden kann, wäre, wenn Änderungen aus mehreren Dialogfeldern separat übernommen oder zurückgesetzt werden müssen, wobei alle Änderungen als einzelne atome Operation 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, und verwenden Sie dann die Schaltflächen auf der linken Seite, 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 BeginEditgeöffnet wurde, drei neue Aktivitäten auf der Designer-Canvas angezeigt 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. Im Designer werden drei Aktivitäten angezeigt.