微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

排序 DataGridView ComboBox 值

如何解决排序 DataGridView ComboBox 值

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

示例代码

1

结果:

2

我想要获得的是以下示例: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”列表。

这是一个设置组合框数据dousrce的简单演示。

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()))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。