Поделиться через


Использование области редактирования

Данный раздел относится к версии Windows Workflow Foundation 4.

В этом образце показано, как организовать набор изменений в пакет, чтобы отменить их как одну атомарную операцию. По умолчанию действия, выполняемые автором конструктора действий, автоматически интегрируются в систему отмены и повтора.

Демонстрации

Редактирование области, отмена и повтор.

Обсуждение

В этом образце показано, как организовать набор изменений в дереве ModelItem в рамках одной единицы работы. Обратите внимание, что при привязке к ModelItem значений непосредственно из конструктора WPF изменения вносятся автоматически. В данном образце показано, что следует делать, когда организуемые в пакет изменения производятся посредством императивного кода, а не единичным изменением.

В данном образце добавляются три действия. Когда начинается редактирование, для экземпляра ModelItem вызывается метод BeginEdit. Изменения, внесенные в дерево ModelItem в рамках данной области редактирования, организуются в пакет. Команда BeginEdit возвращает объект EditingScope, с помощью которого можно управлять данным экземпляром. Чтобы зафиксировать или восстановить область редактирования, можно вызвать метод OnComplete или OnRevert.

Кроме того, можно вкладывать друг в друга объекты EditingScope, которые позволяют отслеживать несколько групп изменений как часть более крупной области изменений, и которые можно регулировать вручную. Сценарий, использующий эту возможность, полезен при необходимости по отдельности фиксировать или восстанавливать изменения из нескольких диалогов, которые считаются единичными атомарными операциями. В данном образце области редактирования накапливаются с использованием коллекции ObservableCollection объектов типа ModelEditingScope. Коллекция ObservableCollection используется таким образом, чтобы глубину вложения можно было контролировать через интерфейс конструктора.

Настройка, построение и выполнение образца

  1. Постройте и запустите образец, после чего модифицируйте рабочий процесс при помощи кнопок слева.

  2. Нажмите кнопку Открыть область редактирования.

    1. Эта команда вызывает метод BeginEdit, создающий область редактирования и отправляющий ее в стек редактирования.

    2. Затем к выбранному элементу ModelItem добавляются три действия. Стоит заметить, что если область редактирования открывалась не с помощью метода BeginEdit, на полотне конструктора появятся три новых действия. Пока эта операция еще находится в очереди EditingScope, конструктор не обновляется.

  3. Чтобы зафиксировать область редактирования, нажмите кнопку Закрыть область редактирования. Три действия появятся в конструкторе.

Ee834521.Important(ru-ru,VS.100).gif Примечание
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).

<диск_установки>:\WF_WCF_Samples

Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.

<диск_установки>:\WF_WCF_Samples\WF\Basic\CustomActivities\CustomActivityDesigners\UsingEditingScope