Выражения DataTable и видимость Datagrid - PullRequest
1 голос
/ 15 декабря 2010

Мне было интересно, возможно ли применить выражение данных только на видимые столбцы представления данных.

вот пример использования. Конечный пользователь имеет DataGridView, заполненный до десяти столбцов чисел и итоговый столбец с итогом. если пользователь решил скрыть один из этих столбцов (в идеале), выражение изменилось бы в зависимости от видимых столбцов в сетке данных.

спасибо за любой вклад.

1 Ответ

1 голос
/ 15 декабря 2010

Вам потребуется обработать событие DataGridView.ColumnStateChanged .

В 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();
}
...