我想知道是否可以仅强制执行数据表达式 datagridview的可见列。
继承人一个用例。 最终用户有一个DataGridView,其中最多包含十列Numbers和一个总计最终列。如果用户决定隐藏其中一列(idealy),表达式将根据datagrid中的可见列而改变。
感谢任何输入。
答案 0 :(得分: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();
}