2

我正在尝试从 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
}

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

4

2 回答 2

4

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

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

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

无论如何,请注意还有其他方法试图在您的视图和模型 ( MVVM ) 之间保持更清晰的相关性,如果您有时间,请尝试一下。它将回报您的生产力和清晰的关注点分离。它不需要从头开始。MVVM LightCaliburn Micro等框架将为您提供必要的管道。

于 2012-09-05T13:12:29.537 回答
3

onlySelectedItems是空的。先初始化一下

List<LViewItem> onlySelectedItems = new List<LViewItem>();
于 2012-09-05T13:11:49.253 回答