编辑:以下代码作品! (我注释掉了,构建了,后来取消注释并且它起作用了。)
ObservableCollection
我有一个ListBox
。我想仅根据显示名称选择其中一些项目,因为我不知道项目值。但是我得到一个转换错误(IEnumerable到ObservableCollection)。
ObservableCollection<ListBoxItem> unselectedcollection
= new ObservableCollection<ListBoxItem>
(dt.AsEnumerable()
.Select(i => new ListBoxItem(i[ColumnNames.LISTNAMECOL].ToString(),
i[ColumnNames.LISTVALUECOL].ToString())));
ObservableCollection<ListBoxItem> selectedcollection
= new ObservableCollection<ListBoxItem>
(from item in unselectedcollection.AsEnumerable()
where (item.Name == "firstName"
|| item.Name == "secondName"
|| item.Name == "thirdName")
select item);
我已经尝试了我能想到的各种铸造选项。我错过了什么?
答案 0 :(得分:0)
我在处理集合并将Linq结果传递给它们时遇到的一个常见问题是集合未枚举,通过调用ToList枚举它通常可以解决问题。我会试一试,看看它是否有帮助。
ObservableCollection<ListBoxItem> selectedcollection
= new ObservableCollection<ListBoxItem>(
unselectedcollection.AsEnumerable()
.Where(item => item.Name == "firstName"
|| item.Name == "secondName"
|| item.Name == "thirdName")
.ToList());
答案 1 :(得分:0)
我无法解释如何或为什么,但我在这一节中注释掉了,用空白列表填写以继续测试。我刚刚回来并取消注释它以给出确切的错误消息(根据@nakiya的要求)并重建......
......它有效。
我再一次不知道如何或为什么,但至少我可以继续前进。