2010-12-15 6 views
1

Ich frage mich, ob es möglich ist, eine Datentabelle Ausdruck nur auf sichtbaren Spalten eines Datagridview zu erzwingen.DataTable Expressions und Datagrid Sichtbarkeit

ist ein Anwendungsfall. Endbenutzer verfügt über ein DataGridView, das mit bis zu zehn Spalten mit Zahlen und einer abschließenden Spalte mit einer Gesamtzahl gefüllt ist. Wenn der Benutzer entschied, eine dieser Spalten auszublenden (idealerweise), würde sich der Ausdruck abhängig von den sichtbaren Spalten im Datagrid ändern.

danke für irgendeine Eingabe.

Antwort

1

Sie müssen mit der DataGridView.ColumnStateChanged Event umgehen.

In myDataTable haben Sie zunächst keinen Ausdruck festgelegt. Nachdem das Grid zum ersten Mal geladen wurde, starten Sie 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

Das ist perfekt, danke. Ich suchte nach einem ColumnVisible Event oder ähnlichem. wirkt jetzt ein Charme. – BastanteCaro