我的datagridview中有一个列是一个组合框列.我想按它的显示值(即文本)而不是它的值(在这种情况下,来自数据库的int列表)进行排序.
我怎样才能做到这一点?
您可以通过覆盖以下SortCompare事件来执行DataGridView此操作:
在DataGridView比较两个单元格值以执行排序操作时发生
并始终按显示值而不是默认值排序.
SortCompare事件连接到DataGridView,如下所示:this.dataGridView1.SortCompare += new DataGridViewSortCompareEventHandler(dataGridView1_SortCompare);
Run Code Online (Sandbox Code Playgroud)
Cell的 FormattedValue属性,而不是Value财产(这是默认值). void dataGridView1_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
{
var dgv = (DataGridView) sender
string value1 = dgv.Rows[e.RowIndex1].Cells[e.Column.Index].FormattedValue.ToString();
string value2 = dgv.Rows[e.RowIndex2].Cells[e.Column.Index].FormattedValue.ToString();
e.SortResult = System.String.Compare(value1, value2);
e.Handled = true;
}
Run Code Online (Sandbox Code Playgroud)
适合我,希望能帮助其他人.我只是希望有一个设置DataGridView,使其成为默认选项.