예제
아래는 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 |