2010-05-25 1 views
0

편집 프로젝트의 일부로 사용자가 테이블에서 작업을 수행 할 수 있도록 WPF RichTextBox 컨트롤에 기능을 추가해야합니다. 이러한 작업 중 하나는 테이블의 하나 이상의 열에 새로운 너비 값을 적용하는 것입니다. 질문에 TableColumn 개체에 새 너비 값을 적용하는 함수가 있고 테이블의 크기가 잘 조정되고 있습니다. 그러나 열 너비 변경 작업이 실행 취소 스택에 추가되지 않는 것으로 나타났습니다.WPF RichTextBox의 테이블 변경에 대한 실행 취소/다시 실행 지원

즉, 사용자가 무언가를 입력 한 다음 열 너비를 변경 한 다음 실행 취소를 선택하면 RichTextBox 컨트롤은 사용자의 입력을 취소합니다. 실행 취소 및 다시 실행은 TableColumn 개체의 속성 변경을 선택하지 않는 것 같습니다.

실제로이 작업을 실행 취소/다시 실행할 수있는 방법으로 수행 할 수있는 방법이 있습니까?

답변

2

아쉽게도 FlowDocument TableColumn 객체는 실제 필수 객체가 아닌 레이아웃 지침으로 간주됩니다. 따라서 변경 내용 추적 시스템을 WPF RichTextBox 컨트롤로 빌드하면 해당 개체의 변경 내용을 추적 할 수 없습니다. 자세한 내용은 here을 참조하십시오.

변경 사항 추적 시스템에서 추적 할 수있는 기본 작업으로 TableColumn 개체를 포함하는 테이블을 변경하여이 문제를 해결했습니다. 기본적으로 TableColumn 객체 조작과 관련된 작업을 수행하려면 그룹화 된 실행 취소 작업을 시작하고 FlowDocument에서 둘러싼 테이블을 제거하고 필요에 따라 조작 한 다음 다시 FlowDocument에 추가 한 다음 실행 취소 일괄 처리를 닫습니다. 이렇게하면 변경 내용 추적 시스템이 실행 취소/다시 실행이 올바르게 처리 할 수있는 기존 콘텐츠를 대체하는 레코드를 기록합니다.