有没有一种方法可以将列表视图的全部内容从一个控件复制到另一个控件,而无需手动设置第二个控件并遍历每个项目?我在想类似的东西:

ListView myNewListView = new ListView();
lvwExistingView.CopyTo(myNewListView);


甚至:

ListView myNewListView = new ListView();
lvwExistingView.Items.CopyTo(myNewListView.Items, 1); // This doesn't work because it expects an array

最佳答案

ListViewItem一次不能存在于多个列表视图中。它们需要重新创建。

但是您可以使用LINQ来加快这一步。

myNewListView.Items.AddRange(
    lvwExistingView.Items.Cast<ListViewItem>().Select(i =>
        i.Clone()).Cast<ListViewItem>().ToArray());

10-06 01:17