按列对列表视图排序会导致首先显示空列表

时间:2014-03-29 13:42:56

标签: c# listview sorting items

我想按列对列表视图进行排序,并使用了此示例代码:http://support.microsoft.com/kb/319401。 它工作但在listview的末尾我有一些空白项目,当我点击一列时,这些项目成为第一项,我最后需要它们。如何让代码跳过空白项?

感谢。

1 个答案:

答案 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);

这应该覆盖比较的原始结果。

注意你如何检查空项目,也可能是空的,或者你以前做过的任何事情......!