1
是否可以在運行時按字母順序排列Windows窗體ListView的所有ListViewGroups?按字母順序排序ListView的ListViewGroups
或者當我添加組(使用ListViewGroupCollection的「插入」方法)時,是否必須手動實現排序?如果是這樣,有人可以給我一個想法如何做到這一點?
是否可以在運行時按字母順序排列Windows窗體ListView的所有ListViewGroups?按字母順序排序ListView的ListViewGroups
或者當我添加組(使用ListViewGroupCollection的「插入」方法)時,是否必須手動實現排序?如果是這樣,有人可以給我一個想法如何做到這一點?
在的WinForms ListView的,你必須做手工排序:
ListViewGroup[] groups = new ListViewGroup[this.listView1.Groups.Count];
this.listView1.Groups.CopyTo(groups, 0);
Array.Sort(groups, new GroupComparer());
this.listView1.BeginUpdate();
this.listView1.Groups.Clear();
this.listView1.Groups.AddRange(groups);
this.listView1.EndUpdate();
...
class GroupComparer : IComparer
{
public int Compare(object objA, object objB)
{
return ((ListViewGroup)objA).Header.CompareTo(((ListViewGroup)objB).Header);
}
}
組在.NET中的ListView是相當討厭的 - 它們的外觀和行爲像老的Win32 ListView和Windows資源管理器...
之間的混合因此,我建議你Better ListView component支持分類組開箱:
this.betterListView1.Groups.Sort(new GroupComparer());
...
class GroupComparer : IComparer<BetterListViewGroup>
{
public int Compare(BetterListViewGroup groupA, BetterListViewGroup groupB)
{
return groupA.Header.CompareTo(groupB.Header);
}
}
此外,該組的外觀和行爲只是就像在Windows資源管理器中一樣,它們是可摺疊的,即使對它們進行排序也不會發生閃爍。
謝謝!我的ListView組件中缺少組排序,我已經實現了可摺疊組和雙緩衝/ uxstyles。 –