使用IComparable接口对ListViewItems进行排序

时间:2018-06-21 11:45:46

标签: winforms sorting listview icomparable

我具有Product类(id,名称,单位,价格和Supplierid属性),在该类中,我根据产品名称实现了IComparable:

 public int CompareTo(object obj)
        {
            Product prod = (Product)obj;
            if (this.nume.CompareTo(prod.nume) < 0)
                return -1;
            else if (this.nume.CompareTo(prod.nume) > 0)
                return 1;
            else return 0; 
        }

我有一个listView,其中以主要形式填充了产品。在辅助表单Form2中,我有一些文本框,用于输入值以创建新产品,将其添加到产品列表,将该列表发送到Form1并在listView中显示。

我希望当我运行该应用程序时,ListView能够按名称自动排序,并且当我在添加新产品后从Form2移到Form1时,新的更新后的Listview会自动排序,包括新产品。我想使用IComparable实现此目的。但是我被困在这里:

 for(int i=0;i<listView1.Items.Count-1;i++)
                for(int j=i+1;j<listView1.Items.Count;j++)
                {
                    listView1.Items[i].Name.CompareTo(listView1.Items[j].Name);
                }

我将此代码放入Form1的构造函数中。但是似乎什么也没做。有任何想法吗?非常感谢

0 个答案:

没有答案