2010-12-14 3 views
0

RowEditEnding 이벤트 처리기 내에서 실행할 몇 가지 유효성 검사 요구 사항이 있습니다. 그러나 삭제되지 않는 특정 조건이 있습니다. 삭제 버튼을 누르면 레코드로 작업 할 세부 양식으로 이동하는 경우입니다.WPF에서 RowEditEnding 내의 호출 명령을 확인하여 이벤트를 실행하고 싶습니다.

다음과 같은 경우 호출 명령을 검사하여 행의 데이터를 검증하기 전에 "규칙에 대한 예외"중 하나가 실행 중입니까?

private void resultsGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e) 
{ 
    if (!allFieldsAreValid) 
    { 
     e.Cancel = true; 
     return; 
    } 
    return; 
} 

나는 그것을 같이하고 싶습니다 :

private void resultsGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e) 
{ 
    if (CommandToDeleteRow || CommandToGoToForm) 
     return; 
    if (!allFieldsAreValid) 
    { 
     e.Cancel = true; 
     return; 
    } 
    return; 
} 

감사

현재, 의사 코드는 다음과 같이 보인다!

답변

1

DataGrid에서 implementing validation을 살펴보십시오. 셀과 행 수준에서 모델 내에서 항목이 변경 될 때마다 유효성 검사를 수행 할 수 있습니다. 또한 모델 내에서 롤백 변경을 구현할 수 있으므로 IEditableObject을 확인할 수도 있습니다.

이렇게하면 이벤트 처리기를 사용하지 않고 MVVM 접근 방식으로 전환 할 수 있습니다. 처음 장애물이 생기면 이됩니다. 당신의 삶을 편하게 만듭니다.

관련 문제