怎样让ListView按每个Item的Checked的值排序! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 说的再详细一点最简单的就是你找个arraylist之类的记住顺序然后重新绑定 我是这样写的,但是有问题,提示“index不能为-1”private void listView_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e) { this.listView.ListViewItemSorter = new ListViewItemComparer(e.Column); this.listView.Sort(); }class ListViewItemComparer : IComparer { private int col; public ListViewItemComparer() { col=0; } public ListViewItemComparer(int column) { col=column; } public int Compare(object x, object y) { if(col ==0)//按Check排序 return ((ListViewItem)y).Checked.CompareTo(((ListViewItem)x).Checked); else//按字符排序 return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text); }} Checked就两个值:true/false,那其他的怎么排序呢?你只能取出来存起来,然后重新绑定,绑定后,对于checked为true的,再设置一下。没有好的办法。 TO lovvver(春晖) :ListViewItem怎样绑定啊!我的方法不行吗? 子线程里有循环,如何立即终止线程? 用C#建一张2000*4000的表 对数据库的一些操作 求解释!! 拖动窗体标题栏来移动窗体位置,在这个过程中窗体中的控件会收到什么消息呢? s数据库连接问题 请教:textbox绑定问题 5行代码的问题,为什么DATAGRID可以显示,水晶报表却无法显示? 如何生成windows程序,在线等候!!!!!!!!!!!! ¥¥ 分步调试一切正常,直接运行就没动静了。比较郁闷,求助中...... 用StreamReader从文本文件读取数据,为什么遇到中文都是乱码?请指教! TcpListener 和 TcpClient 的问题
然后重新绑定
private void listView_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
{
this.listView.ListViewItemSorter = new ListViewItemComparer(e.Column);
this.listView.Sort();
}
class ListViewItemComparer : IComparer
{
private int col;
public ListViewItemComparer()
{
col=0;
}
public ListViewItemComparer(int column)
{
col=column;
}
public int Compare(object x, object y)
{
if(col ==0)//按Check排序
return ((ListViewItem)y).Checked.CompareTo(((ListViewItem)x).Checked);
else//按字符排序
return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
}
}
你只能取出来存起来,然后重新绑定,绑定后,对于checked为true的,再设置一下。
没有好的办法。