2011-08-10 3 views
4

내 xtraGrid는 사용자 정의 스타일의 EventListener 있습니다 그리드 리조트 그리드 열 머리글을 클릭하면DevExpress의 XtraGrid 사용자 정의 RowCellStyle의 이벤트 핸들러 및 열 정렬 문제

FooGridView.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(FooGridView_RowCellStyle); 


    private void FooGridView_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e) 
     { 

      DevExpress.XtraGrid.Views.Grid.GridView vw = (sender as DevExpress.XtraGrid.Views.Grid.GridView); 
      try 
      { 
       DataRow DR = vw.GetDataRow(vw.GetRowHandle(e.RowHandle)); 

       if (**some condition based on one or more values in the DataRow**) 
       { 
        e.Appearance.Font = new System.Drawing.Font(e.Appearance.Font, System.Drawing.FontStyle.Strikeout); 
        e.Appearance.ForeColor = Color.LightGray; 
       } 
       else 
       { 
        e.Appearance.Font = new System.Drawing.Font(e.Appearance.Font, System.Drawing.FontStyle.Regular); 
        e.Appearance.ForeColor = Color.Black; 
       } 

      } 
      catch (Exception ex) { } 
     } 

을, 형식은 후 잘못된 행에 적용 끝 정렬에 의해 행이 재정렬되었습니다. 그 문제를 어떻게 해결할 것인가?

답변

5

귀하는 e.RowHandle을 받고 DataSourceHandle으로 변환 중입니다. 그런 다음 GetDataRowDataSourceHandle으로 전화를 걸고 있습니다.

그러나 GetDataRow은 데이터 소스 핸들이 아닌 행 핸들을 사용합니다. 사용해보기 :

DataRow DR = vw.GetDataRow(e.RowHandle); 
+0

추가 변환 단계에서 오류를 지적 해 주셔서 감사합니다. – Tim

+0

Tim을 도와 드리겠습니다. – Armbrat