가 여기에 시나리오의 BindingSource에의 마지막지며 EndEdit 호출하기 때문에 모든 변경 실행 취소 :는 (데이터 집합 내에서 DataTable에 바인딩 된 BindingSource에 사용)
- 사용자는 새로운 주소록 접촉을 생성하는 것은, 처음과 마지막에 채워 데이터 바인딩 된 컨트롤의 이름입니다.
- 그는 처리기가 BindingSource.EndEdit() 이벤트를 호출하는 적용을 누릅니다.
- 그런 다음 실수가 있음을 알고 전자 메일 주소를 추가합니다.
- 그러나 적용을 누르면 유효성 검사가 실패 (유효하지 않은 전자 메일 형식)하므로 EndEdit()가 호출되지 않습니다.
- 그는 편집하지 않기로 결정하고 은 이벤트 핸들러가 BindingSource.CancelEdit()을 호출하는 취소 버튼을 누릅니다.
- 하지만, 오히려 전체 기록의 단지 제 1 및 제 성없이 이메일의 BindingSource에 대신 얻었다 제거 와 새 연락처로 되 돌리는 것보다.
마지막으로 EndEdit()가 호출 된 이후로 작업을 실행 취소 할 수있는 방법이 있습니까? 나는 CancelEdit()이 어떻게 작동했는지에 대한 인상을 받았다.
나는 비슷한 문제가있어서, 당신이 이것에 대해 좋은 대답을 얻는 지 알아봐야 할 것입니다. 내 해결 방법은 EndEdit() DataRowView 개체에 직접 호출하는 것입니다. – overslacked
DataRowView에서 호출하면 DataRowState는 어떻게 변경됩니까? 여전히 추가 되었습니까? 아니면 수정되었거나 변경되지 않았습니까? – Dov