이 항목은 Windows Workflow Foundation 4에 적용됩니다.
이 샘플에서는 단일 원자 단위에서 실행 취소될 수 있도록 일련의 변경 내용을 일괄 처리하는 방법을 보여 줍니다. 기본적으로 활동 디자이너 작성자가 수행하는 동작은 실행 취소/다시 실행 시스템에 자동으로 통합됩니다.
데모
범위 편집과 실행 취소 및 다시 실행
추가 설명
이 샘플에서는 단일 작업 단위 내에서 ModelItem 트리에 대한 일련의 변경 내용을 일괄 처리하는 방법을 보여 줍니다. WPF 디자이너에서 직접 ModelItem 값에 바인딩할 때 변경 내용이 자동으로 적용됩니다. 이 샘플에서는 단일 변경 내용이 아닌 일괄 처리할 여러 개의 변경 내용을 명령적 코드를 통해 처리할 때 수행해야 하는 작업을 보여 줍니다.
이 샘플에서는 세 가지 활동이 추가됩니다. 편집을 시작하면 ModelItem의 인스턴스에서 BeginEdit가 호출됩니다. 이 편집 범위 내의 ModelItem 트리에 대한 변경 내용이 일괄 처리됩니다. BeginEdit 명령은 이 인스턴스를 제어하는 데 사용할 수 있는 EditingScope를 반환합니다. OnComplete 또는 OnRevert를 호출하여 편집 범위를 커밋하거나 되돌릴 수 있습니다.
여러 개의 변경 내용 집합을 더 큰 편집 범위의 일부로 추적하고 개별적으로 제어할 수 있도록EditingScope 개체를 중첩할 수도 있습니다. 이 기능을 사용할 수 있는 시나리오는 모든 변경 내용이 단일 원자 단위 작업으로 처리될 여러 대화 상자의 변경 내용을 개별적으로 커밋하거나 되돌려야 하는 경우입니다. 이 샘플에서는 편집 범위가 ModelEditingScope 형식의 ObservableCollection을 사용하여 누적됩니다. 디자인 화면에서 중첩 한도를 확인할 수 있도록 ObservableCollection이 사용됩니다.
샘플을 설치, 빌드 및 실행하려면
샘플을 빌드하고 실행한 다음 왼쪽의 단추를 사용하여 워크플로를 수정합니다.
편집 범위 열기를 클릭합니다.
이 명령은 편집 범위를 만들어 편집 스택에 푸시하는 BeginEdit를 호출합니다.
그러면 선택한 ModelItem에 세 개의 활동이 추가됩니다. BeginEdit를 사용하여 편집 범위를 열지 않았다면 디자이너 캔버스에 세 개의 새 활동이 나타납니다. 이 작업은 EditingScope 내에서 여전히 보류 중이므로 디자이너가 아직 업데이트되지 않았습니다.
편집 범위 닫기를 눌러 편집 범위를 커밋합니다. 그러면 디자이너에 세 개의 활동이 나타납니다.
![]() |
---|
컴퓨터에 이 샘플이 이미 설치되어 있을 수도 있습니다. 계속하기 전에 다음(기본) 디렉터리를 확인하십시오.
<InstallDrive>:\WF_WCF_Samples
이 디렉터리가 없으면 Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4로 이동하여 WCF(Windows Communication Foundation) 및 WF 샘플을 모두 다운로드하십시오. 이 샘플은 다음 디렉터리에 있습니다.
<InstallDrive>:\WF_WCF_Samples\WF\Basic\CustomActivities\CustomActivityDesigners\UsingEditingScope
|