Använda redigeringsomfång
Exemplet UsingEditingScope visar hur du batchar en uppsättning ändringar så att de kan ångras i en enda atomisk enhet. Som standard integreras de åtgärder som vidtas av en aktivitetsdesigners författare automatiskt i systemet Ångra/Gör om.
Demonstrationer
Redigera omfång och Ångra och Gör om.
Diskussion
Det här exemplet visar hur du batchar en uppsättning ändringar i ModelItem trädet inom en enda arbetsenhet. Observera att när du binder till ModelItem värden direkt från en WPF-designer tillämpas ändringarna automatiskt. Det här exemplet visar vad som måste göras när flera ändringar som ska batchas görs via imperativ kod i stället för en enda ändring.
I det här exemplet läggs tre aktiviteter till. När redigeringen börjar BeginEdit anropas på en instans av ModelItem. Ändringar som görs i ModelItem trädet inom det här redigeringsomfånget batchförs. Kommandot BeginEdit returnerar en EditingScope, som kan användas för att styra den här instansen. Antingen OnComplete eller OnRevert kan anropas för att antingen checka in eller återställa redigeringsomfånget.
Du kan också kapsla EditingScope objekt, vilket gör att flera uppsättningar med ändringar kan spåras som en del av ett större redigeringsomfång och kan styras individuellt. Ett scenario som kan använda den här funktionen är när ändringar från flera dialogrutor måste checkas in eller återställas separat, där alla ändringar behandlas som en enda atomisk åtgärd. I det här exemplet staplas redigeringsomfången med en ObservableCollection<T> av typen ModelEditingScope. ObservableCollection<T> Används så att djupet i kapslingen kan observeras på designerytan.
Så här konfigurerar du, skapar och kör exemplet
Skapa och kör exemplet och använd sedan knapparna till vänster för att ändra arbetsflödet.
Klicka på Öppna redigeringsomfång.
Det här kommandot anropar BeginEdit som skapar ett redigeringsomfång och push-överför det till redigeringsstacken.
Tre aktiviteter läggs sedan till i den valda ModelItem. Observera att om redigeringsomfånget inte hade öppnats med BeginEditvisas tre nya aktiviteter på designerarbetsytan. Eftersom den här åtgärden fortfarande väntar i EditingScopehar designern ännu inte uppdaterats.
Tryck på Stäng redigeringsomfång för att checka in redigeringsomfånget. Tre aktiviteter visas i designern.