예제
아래는 TestClass 에 IDataContextState 라는 인터페이스가 구현되어져 있을떄 입니다.
인터페이스
이 인터페이스는 클라이언트 측에서 데이터가 삭제/수정/신규 상태를 관리하게 위해서 만들었습니다. 이인터페이스를 구현해놓은 클래스는
//특정 클래스에서 이 인터페이스를 구현해 놓으면 추가/수정/삭제를 알수있습니다. public interface IDataContextState { bool IsNew { set; get; } bool IsDeleted { get; set; } bool IsEdited { get; set; } }
IDataContextState 상태 변경시키키 호출
그리듀 뷰 에서 삭제를 눌렀을때 발생하는 이벤트
private void dgvDocCategory_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e) { Contract.Data.Doc.DocCategory df = e.Row.DataBoundItem as Contract.Data.Doc.DocCategory; //RepositoryManager<T> : List<T> 형태입니다. 여기에 Delete 메소를 추가하였습니다. DocCategoryRepositoryManager.Delete(df); }
특정 클래스에 인터페이스가 구현 되어져 있는지 체크하기하고 상태변경
public class RepositoryManager<T> : List<T> { public void Delete<T>(T t) { Type type = t.GetType().GetInterface("IDataContextState"); if( type != null ) //IDataContextState 가 구현되어져있음 삭제 형태를 변경합니다. { ((Contract.Data.IDataContextState)t).IsDeleted = true; } } }
'C#.NET' 카테고리의 다른 글
[Binding] 컨트롤 바인딩 할떄 포멧변경 (0) | 2010.03.11 |
---|---|
Partial 클래스 (0) | 2010.03.10 |
errorProvider을 이용한 에러체크하기 (0) | 2010.03.09 |
openFileDialog로 텍스트파일 선택하기 (0) | 2010.03.06 |
[MSDN]DataGridView 셀에서 컨트롤 호스팅 (0) | 2010.03.03 |
[ErrorProvider]폼 유효성에 대한 오류 아이콘 표시 (0) | 2010.03.03 |
초간단 숫자 앞에 0 채우기 (0) | 2010.02.25 |
초간단 DataGridView 사용법 (추가중…) (0) | 2010.02.22 |
[.Resx 리소스 , Resources]리소스 액세스 (3) | 2010.02.10 |
[Process]외부프로그램 실행 / 익스플로어실행 (0) | 2010.02.08 |