2008-10-28 5 views
5

데이터 원본이 사용자 지정 개체의 일반 목록으로 설정된 DataGridView가 있습니다. 사용자가 값을 변경하면 (이 경우 확인란을 선택/선택 취소) 객체의 기본 부울 필드가 변경됩니다.바운드 DataGridView의 변경 내용을 어떻게 롤백합니까?

바인딩을 위해 목록의 "복사본"을 만들고 사용자가 커밋하면 수동으로 업데이트해야합니까? (그렇다면이 복사본을 만드는 방법) 데이터 소스에 대한 변경 사항을 롤백하는 간단한 방법이 있습니까? .

당신이, 그것은 실제 데이터 소스, 당신은 그리드에 바인딩 한 단지 목록을 업데이트 아니에요하라는있어 기술적으로하지 않는

답변

1

(나는 C#을 사용하고 있습니다). 이 목록을 폐기하고 소스를 다시 쿼리하여 이전 상태로 다시 불러올 수 있습니다.

실제 데이터 소스에 대한 모든 변경 사항을 사용자가 커밋하도록 커밋 옵션을 추가하기 만하면됩니다.

이렇게 처리하는 것이 훨씬 쉽고 덜 집중적입니다. 그런 다음 "취소 변경"또는 업데이트를 수행하지 않고 소스에서 다시 목록을 새로 고치고 다시 바인딩 할 수있는 옵션을 간단히 가질 수 있습니다.

희망이 도움이됩니다.

건배!

+0

바인딩하는 양식에 내 목록 을 전달하고있었습니다. (이것은 XML 파일로 구성됩니다). 내 실수를 강조했다고 생각해. 바인딩을 위해 새 List <> 컬렉션을 만들 필요가 있습니다. ("라이브"를 사용하지 않고 사용자가 (확인을) 클릭하려는 경우에만 변경 사항을 커밋합니다.) –

+0

편집 양식으로 보낼 개체를 복사하려면. 원본 객체의 복사본을 만드는 복사 생성자. 그런 다음 사용 사례에 따라 할당하거나 버립니다. http://stackoverflow.com/a/6569799/384554 – PUG

관련 문제