Używanie zakresu edycji
W przykładzie UsingEditingScope pokazano, jak wsadować zestaw zmian, aby można je było cofnąć w pojedynczej jednostce atomowej. Domyślnie akcje wykonywane przez autora projektanta działań są automatycznie integrowane z systemem Cofnij/Wykonaj ponownie.
Demonstracje
Edytowanie zakresu i cofanie i powtórzenie.
Dyskusja
W tym przykładzie pokazano, jak wsadować zestaw zmian do ModelItem drzewa w ramach jednej jednostki pracy. Należy pamiętać, że w przypadku powiązania z ModelItem wartościami bezpośrednio z projektanta WPF zmiany są stosowane automatycznie. W tym przykładzie pokazano, co należy zrobić, gdy wiele zmian, które mają być wsadowe, są wprowadzane za pomocą kodu imperatywnego, a nie za pomocą pojedynczej zmiany.
W tym przykładzie są dodawane trzy działania. Podczas edytowania jest BeginEdit wywoływana w wystąpieniu ModelItemklasy . Zmiany wprowadzone w drzewie ModelItem w tym zakresie edycji są wsadowe. Polecenie BeginEdit zwraca wartość EditingScope, która może służyć do kontrolowania tego wystąpienia. OnRevert Albo OnComplete może być wywoływany w celu zatwierdzenia lub przywracania zakresu edycji.
Można również zagnieżdżać EditingScope obiekty, które umożliwiają śledzenie wielu zestawów zmian w ramach większego zakresu edycji i można je kontrolować indywidualnie. Scenariusz, który może używać tej funkcji, będzie polegał na tym, że zmiany z wielu okien dialogowych muszą zostać zatwierdzone lub przywrócone oddzielnie, a wszystkie zmiany są traktowane jako pojedyncza operacja niepodzielna. W tym przykładzie zakresy edycji są ułożone przy użyciu ObservableCollection<T> typu ModelEditingScope. Element ObservableCollection<T> jest używany tak, aby głębokość zagnieżdżania mogła być obserwowana na powierzchni projektanta.
Aby skonfigurować, skompilować i uruchomić przykład
Skompiluj i uruchom przykład, a następnie użyj przycisków po lewej stronie, aby zmodyfikować przepływ pracy.
Kliknij pozycję Otwórz zakres edycji.
To polecenie wywołuje BeginEdit polecenie, które tworzy zakres edycji i wypycha go do stosu edycji.
Trzy działania są następnie dodawane do wybranego ModelItemelementu . Należy pamiętać, że jeśli zakres edycji nie został otwarty za pomocą BeginEditpolecenia , na kanwie projektanta pojawią się trzy nowe działania. Ponieważ ta operacja nadal oczekuje w programie EditingScope, projektant nie został jeszcze zaktualizowany.
Naciśnij pozycję Zamknij zakres edycji, aby zatwierdzić zakres edycji. W projektancie są wyświetlane trzy działania.