使用BindingSource.Sort对Combobox进行排序,这里有什么错误:

时间:2011-07-22 09:19:22

标签: c# sorting combobox bindingsource

无法获取以下代码以正确排序Combobox(drpBox2)。

BindingSource bsAddresses = new BindingSource();
bsAddresses.DataSource = searchedAddr;
bsAddresses.Sort = "timesUsed ASC";
drpBox2.DataSource = bsAddresses.DataSource;
drpBox2.DisplayMember = "address";

我怎样才能让它发挥作用?

2 个答案:

答案 0 :(得分:1)

这里可能有两个问题

  • 所需的列区分大小写,因此您应该提供它 在适当的情况下(默认是升序)
  • 另外,要对基础List进行排序,必须实现 IBindingList(如果没有,那么SupportsSorting属性将为false,表示源不支持排序)

Read Here

答案 1 :(得分:1)

代码中存在一个简单的错误,当使用BindingSource时,您必须直接将控件绑定到BS,而不是绑定到其DataSource。在您的代码中,bsAddressesdrpBox2都绑定到searchedAddr,因此根本不使用已排序的BindingSource。固定代码:

BindingSource bsAddresses = new BindingSource();
bsAddresses.DataSource = searchedAddr;
bsAddresses.Sort = "timesUsed ASC";
drpBox2.DataSource = bsAddresses;
drpBox2.DisplayMember = "address";