2011-07-22 41 views
1

无法获得下面的代码来正确排序Combobox(drpBox2)。Sorting Combobox BindingSource.Sort,这里有什么错:

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

如何让它工作?

+0

提供XAML和样本数据。 –

回答

1

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

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

有可能是这里的两个问题

  • 所需的列是区分大小写的,所以你应该在适当的情况下,可以提供它 (升序是默认值)
  • 也为潜在的列表,让分类它必须实现 IBindingList(如果没有,那么SupportsSorting属性将是错误的,这表明源不支持排序)

Read Here

+0

谢谢,我注意到在绑定它之前对列表进行排序一样容易,所以这就是我所做的。不过谢谢。 – mdc