【问题标题】:Sorted list not sorted when binding绑定时排序列表未排序
【发布时间】:2009-08-21 07:33:55
【问题描述】:

我有一个排序列表。当我将它绑定到列表框时,它不会以有序的方式显示项目。

territoryListBox.BeginUpdate();
this.Text = ((INamedEntity)_currentList[0]).Name;
territoryListBox.DataSource = _currentList;
territoryListBox.DisplayMember = "Name";
territoryListBox.Sorted = true;
territoryListBox.EndUpdate();

列表中的第一项是,比如说,A。this.Text 显示“A”,它是列表中的第一项。但列表框显示:

B
C
A

_currentList 是一个 IList

【问题讨论】:

  • 当您说您有一个排序列表时,您的意思是该列表在您绑定之前已排序,或者该列表可以排序?
  • 我的意思是,在我绑定之前,这些项目在列表中的顺序已经正确。

标签: c# data-binding list


【解决方案1】:

你在吞下异常吗?当我尝试这个时,我得到(设置Sorted时)ArgumentException

设置 DataSource 属性时无法修改项目集合。

IMO,首先对列表进行排序 - 并绑定到该列表;但是,快速测试表明设置Sorted before 设置DataSource 也有效 - 即

territoryListBox.Sorted = true;
territoryListBox.DataSource = yourListOfData;
territoryListBox.DisplayMember = "Name";

【讨论】:

  • 我没有吞下异常。我不知道你为什么会得到这个异常。我试过你的技巧先对列表进行排序,现在它正在工作。区域列表框.BeginUpdate();区域列表框.Sorted = true; regionListBox.DisplayMember = "名称";区域列表框.数据源 = _currentList;区域列表框.EndUpdate(); _currentList 是一个 IList
【解决方案2】:

只是为了好玩,试试ListBox.Sort。显然,这不应该是必要的,但有些事情出了问题。

【讨论】:

  • 没有 ListBox.Sort 方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-07
  • 2017-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-12
  • 1970-01-01
相关资源
最近更新 更多