我想按列对列表视图进行排序,并使用了此示例代码:http://support.microsoft.com/kb/319401。 它工作但在listview的末尾我有一些空白项目,当我点击一列时,这些项目成为第一项,我最后需要它们。如何让代码跳过空白项?
感谢。
答案 0 :(得分:1)
如果您已经实现了整个示例,则可以更改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);
这应该覆盖比较的原始结果。
注意你如何检查空项目,也可能是空的,或者你以前做过的任何事情......!