列表视图排序

本文关键字:排序 视图 列表 | 更新日期: 2023-09-27 18:01:59

我想排序的listview数据时,单击列标题。找到这篇带有代码的文章。http://msdn.microsoft.com/en-us/library/ms229643%28v=vs.90%29.aspx

但是当运行它时,第一行

ColHeader clickedCol = (ColHeader)this.listView_ChkInOut.Columns[e.Column];

已生成错误无效强制转换异常未处理。

public class ColHeader : ColumnHeader
        {
            public bool ascending;
            public ColHeader(string text, int width, HorizontalAlignment align, bool asc)
            {
                this.Text = text;
                this.Width = width;
                this.TextAlign = align;
                this.ascending = asc;
            }
        }

我看不懂代码,有人能解释一下为什么会出现这个错误吗?

列表视图排序

        ColumnHeader lickedCol = (ColumnHeader)this.listView1.Columns[e.Column];
        MessageBox.Show(lickedCol.Text);

据我所知,这应该正常工作。至少我得到了正确的文本。

在您提供的示例中,当他添加Columnheaders

时,就会发生这种情况
// parameter specifies true for an ascending sort order.
listView1.Columns.Add(new ColHeader("Name", 110, HorizontalAlignment.Left, true));
listView1.Columns.Add(new ColHeader("Region", 50, HorizontalAlignment.Left, true));
listView1.Columns.Add(new ColHeader("Sales", 70, HorizontalAlignment.Left, true));

他添加了ColHeaders而不是ColumnHeaders。我认为你没有这样做然后你会得到错误,至少这是发生在我身上的;)