将所选项目从WPF ListView保存到另一个变量

时间:2012-09-05 13:09:54

标签: c# .net wpf listview selecteditem

我正在尝试从ListView(WPF System.Windows.Controls.ListView)中获取所选项目并将其传递给另一个变量以存储选择但我得到NullReferenceException。

List<LViewItem> onlySelectedItems = null;
var selectedItems = listView1.SelectedItems;

foreach (var item in selectedItems)
{
    onlySelectedItems.Add((LViewItem)item);  // Throws NullReferenceException
}

如何将所选项目保存到另一个变量以存储选择?

2 个答案:

答案 0 :(得分:4)

问题是因为您没有初始化onlySelectedItems列表。

List<LViewItem> onlySelectedItems = new List<LViewItem>(listView1.SelectedItems.Count);

构造函数中的参数指导为列表分配多少空间(初始容量)。哪个是所选项目的数量。

无论如何,请注意,还有其他方法可以尝试在您的视图和模型之间保持更清晰的关联(MVVM),如果您有时间,请尝试一下。它将使您恢复生产力并明确分离关注点。它不需要从头开始。像MVVM LightCaliburn Micro这样的框架将为您提供必要的管道。

答案 1 :(得分:3)

您的onlySelectedItems为空。首先初始化

List<LViewItem> onlySelectedItems = new List<LViewItem>();