Udostępnij za pośrednictwem


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

  1. Skompiluj i uruchom przykład, a następnie użyj przycisków po lewej stronie, aby zmodyfikować przepływ pracy.

  2. Kliknij pozycję Otwórz zakres edycji.

    1. To polecenie wywołuje BeginEdit polecenie, które tworzy zakres edycji i wypycha go do stosu edycji.

    2. 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.

  3. Naciśnij pozycję Zamknij zakres edycji, aby zatwierdzić zakres edycji. W projektancie są wyświetlane trzy działania.