【发布时间】:2014-03-29 13:42:55
【问题描述】:
我想按列对列表视图进行排序,我使用了这个示例代码:http://support.microsoft.com/kb/319401。 它可以工作,但在列表视图的末尾我有一些空白项目,当我单击列时,这些项目成为第一个项目,最后我需要它们。如何让代码跳过空白项?
谢谢。
【问题讨论】:
我想按列对列表视图进行排序,我使用了这个示例代码:http://support.microsoft.com/kb/319401。 它可以工作,但在列表视图的末尾我有一些空白项目,当我单击列时,这些项目成为第一个项目,最后我需要它们。如何让代码跳过空白项?
谢谢。
【问题讨论】:
如果您已经实现了整个示例,您可以更改 Compare 方法的这一部分:
// Compare the two items
compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text,
listviewY.SubItems[ColumnToSort].Text);
类似于:
// Compare the two items
compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text,
listviewY.SubItems[ColumnToSort].Text);
if (listviewX.SubItems[ColumnToSort].Text=="")
compareResult = (OrderOfSort == SortOrder.Descending ? -1: 1);
else if (listviewY.SubItems[ColumnToSort].Text=="")
compareResult = (OrderOfSort == SortOrder.Descending ? 1 : -1);
这应该覆盖比较的原始结果。
看看你如何检查空项目,也可能是空的,或者你以前做过的任何事情......!
【讨论】: