使用LINQ对ListBox ListItem进行排序?

时间:2012-05-21 18:38:07

标签: c# linq

我试图对ListBox中的项目进行排序。但是,在执行此操作时,项值将设置为项文本。任何帮助将不胜感激。

lbxCustomers.DataSource = lbxCustomers.Items.Cast<ListItem>().Reverse().ToList();
lbxCustomers.DataBind();

3 个答案:

答案 0 :(得分:3)

可能首先应该将列表存储在泛型集合中,然后对其进行排序。像这样:

List<ListItem> list = new List<ListItem>(lbxCustomers.Items.Cast<ListItem>());
list = list.OrderBy(li => li.Text).ToList<ListItem>();
lbxCustomers.Items.Clear();
lbxCustomers.Items.AddRange(list.ToArray<ListItem>());

答案 1 :(得分:0)

尝试在设置DataSource后重置列表框的DisplayMemberValueMember属性。很多时候,如果控件已被绑定并再次设置DataSource,则会删除DisplayMember / ValueMember属性。

答案 2 :(得分:0)

尝试单独排序列表。 在下一步中指向Text值和Data值。 控制数据绑定。