2010-12-15 2 views
1

표시되는 datagridview 열에서만 datatable 식을 적용 할 수 있는지 궁금합니다.DataTable 표현식 및 Datagrid 가시성

heres 유스 케이스. 최종 사용자에게는 최대 10 개의 열과 최대의 최종 열이 채워진 DataGridView가 있습니다. 사용자가 이러한 열 (idealy) 중 하나를 숨기기로 결정하면 표현식은 DataGrid의 표시되는 열에 따라 변경됩니다.

감사합니다.

답변

1

DataGridView.ColumnStateChanged Event을 처리해야합니다.

myDataTable에서 처음에는 표현식을 설정하지 않습니다. 그리드를 처음로드 한 후 recalculateTotalExpression을 실행하십시오.

void recalculateTotalExpression() 
{ 
    // 0. Create a StringBuilder for your new Expression. 
    // 1. Go through each of the columns of your datagridview, except the TotalColumn 
    // 2. Foreach Visible DataGridView Column, add the corresponding DataTable column to the expression. 
    // 3. Set the Expression to the TotalColumn : TotalColumn.Expression = sb.toString(); 
} 

void MyDataGridView_OnColumnStateChanged(DataGridViewColumnStateChangedEventArgs e) 
{ 
    recalculateTotalExpression(); 
} 
+0

정말 감사합니다. ColumnVisible 이벤트 또는 유사한 검색했습니다. 이제 매력을 발휘합니다. – BastanteCaro