0
List<Profile> listProf = new List<Profile>();
...
...
foreach (Profile p in listProf)
{
   ListViewItem Item = new ListViewItem();
   Item.Text = p.Name;
   Item.Tag = p;
   ListView1.Items.Add(Item);
   ListView2.Items.Add(Item);
}

在这种情况下,我如何将它Item放入两个 ListViews 中?我只是得到我需要克隆它的错误。我怎样才能做到这一点?我也不太确定 ListView 想要如此挑剔的原因。

如何将一项添加到多个 ListViewCollection?

4

2 回答 2

2

试试这个:

foreach(var p in listProf)
{
    var item = new ListViewItem{Text = p.Name, Tag = p};
    ListView1.Items.Add(item);
    ListView2.Items.Add((ListViewItem)item.Clone());
}
于 2013-07-22T21:15:46.733 回答
0

ListView 如此“挑剔”的原因是因为 IsSelected 标志特别保留在 ListViewItem 级别......所以如果你将它添加到多个 ListViews 中,那么将全部选中。

幸运的是 ListViewItem 有一个 .Clone() 方法。

于 2013-07-22T21:22:49.937 回答