首页 > 解决方案 > 将项目插入循环内索引为零的可观察集合仅适用于第一次迭代

问题描述

用一些数据填充 ObservableCollection 后,如果数据集不足以填充我的图表,我想填充它。为此,我在循环内的索引零处插入数据,因此填充始终位于集合的开头。第一次迭代运行良好,但下一次迭代失败

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

我错过了什么?

private void PadDataSet<T>(ObservableCollection<T> dataSet, DateTime minDataTimePeriod, int minuteIntervals)
{
    var paddedList = new List<DataItem>();
    var neededIntervals = _timescaleHours * 60 / minuteIntervals + 1;
    var actualIntervals = dataSet.Count();
    var padCount = neededIntervals - actualIntervals;
    for (var i = 0; i < padCount; i++)
    {
        var g = Activator.CreateInstance<T>();
        var item = g as DataItem;
        if (item != null)
        {
            item.TimePeriod = minDataTimePeriod.AddMinutes(-minuteIntervals * (i + 1));
            dataSet.Insert(0, g);
        }
    }
}

标签: c#observablecollection

解决方案


推荐阅读