Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否将ListViewItem添加到两个或多个ListView项集合? List listProf=new List(); ... ... foreach(listProf中的配置文件p) { ListViewItem=新建ListViewItem(); Item.Text=p.名称; Item.Tag=p; ListView1.Items.Add(项目); ListView2.Items.Add(项目); }_C#_Listviewitem - Fatal编程技术网

C# 是否将ListViewItem添加到两个或多个ListView项集合? List listProf=new List(); ... ... foreach(listProf中的配置文件p) { ListViewItem=新建ListViewItem(); Item.Text=p.名称; Item.Tag=p; ListView1.Items.Add(项目); ListView2.Items.Add(项目); }

C# 是否将ListViewItem添加到两个或多个ListView项集合? List listProf=new List(); ... ... foreach(listProf中的配置文件p) { ListViewItem=新建ListViewItem(); Item.Text=p.名称; Item.Tag=p; ListView1.Items.Add(项目); ListView2.Items.Add(项目); },c#,listviewitem,C#,Listviewitem,在本例中,我如何将此项放入两个列表视图中?我只是得到一个错误,我需要克隆它。我该怎么做?我也不太清楚ListView为什么会如此挑剔 如何将项目添加到多个ListViewCollection中?请尝试以下操作: List<Profile> listProf = new List<Profile>(); ... ... foreach (Profile p in listProf) { ListViewItem Item = new ListViewItem();

在本例中,我如何将此
放入两个列表视图中?我只是得到一个错误,我需要克隆它。我该怎么做?我也不太清楚ListView为什么会如此挑剔

如何将项目添加到多个ListViewCollection中?

请尝试以下操作:

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);
}

ListView如此“挑剔”的原因是IsSelected标志尤其保持在ListViewItem级别。。。因此,如果您将其添加到多个ListView中,那么在一个ListView中选中的将在所有ListView中选中


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

您是一位圣人,我的问题更像是“如果它是最佳解决方案,我该如何使用.Clone()”
foreach(var p in listProf)
{
    var item = new ListViewItem{Text = p.Name, Tag = p};
    ListView1.Items.Add(item);
    ListView2.Items.Add((ListViewItem)item.Clone());
}