无法将 Class 转换为 ObservableCollection

Cannot convert Class to ObservableCollection

我正在尝试将我的 class AllStock 转换为 ObservableCollection<AllStock> stockList,但出现以下错误:

The best overloaded method match for 'System.Collections.ObjectModel.Collection.Add(Haze.AllStock)' has some invalid arguments

这是我的编码:

我创建了我的 Observable 集合 -

private ObservableCollection<AllStock> _stockList;
public ObservableCollection<AllStock> stockList
{
    get
    {
        if (_stockList == null)
            _stockList = new ObservableCollection<AllStock>();
        return _stockList;
    }
}

在我的方法中 -

var allStock = await service.GetSysproStockAsync();
var stock = allStock.Select(x =>
new AllStock
{
    Id = x.Id,
    ...
    MaterialThickness = x.MaterialThickness
});

stockList.Add(stock); //Error here - I want to add my 'var stock' to my ObservableCollection
dgSysproStock.ItemsSource = stockList;

为什么会抛出这个错误?

ObservableCollection 的 Add() 需要一个列表,因此您需要提供一个列表。

你的 Linq 的 Select 方法 returns 一个 IEnumerable 但你的 stockList.Add 没有此数据类型的重载(仅 AllStock)。

foreach(AllStock aStock in stock)
    stockList.Add(aStock)

应该可以。不幸的是,ObservableCollection 没有像 List<>

这样的 AddRange 方法