对 DataGridView ComboBox 值进行排序

Sorting DataGridView ComboBox Values

我一直在尝试通过循环对我当前添加到 comboboxcell 的一些值进行排序,并且我将排序与数据视图一起使用,但这只是对值的第 1 个数字进行排序而没有考虑其余的数字。

示例代码:

结果:

我要获取的是以下示例:1、10、100、200,而不是 1、11、110、2、20、23、3 等等。如果有人有任何想法。

谢谢

您可以使用 LINQ:

DataTable sortedByValue = sortedDT.AsEnumerable()
                   .OrderBy(r=> r.Field<decimal>("MATERIALPROFILE"))
                   .CopyToDataTable();

您可以使用 LINQ 对其进行排序并获取“MATERIALPROFILE”列表。

这里有一个设置combobox数据dousrce的简单demo。

List<decimal> datasource = dt.AsEnumerable()
    .OrderBy(r => r.Field<decimal>("MATERIALPROFILE"))
    .Select(r => r.Field<decimal>("MATERIALPROFILE"))
    .ToList();


DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
combo.DataSource = datasource;

dataGridView1.Columns.Add(combo);

更新:

修改OrderBy子句,如:

.OrderBy(r => Convert.ToInt32(r.Field<string>("FieldName").Split('x')[0].Trim()))