在WPF应用程序中,我有一个对象列表。WPF:从绑定列表中删除最后一项的最有效方法?
我们会定期在这个列表中添加很多元素(~1-10个物品/秒)。
我们希望为此列表添加一个“容量”,以便在达到此容量时删除添加的“最老”项目。
此列表将被绑定到WPF UserControl,因此它需要是ObservableCollection
或类似的。
但是,我的理解是,Collection
不garantee顺序,所以我不能做到以下几点:
int nbOfElementsToRemove = EventsList.Count - MAX_EVENTS;
if (nbOfElementsToRemove > 0)
{
LoggingEvent[] loggingEvents = EventsList.Take(nbOfElementsToRemove).ToArray();
foreach (LoggingEvent loggingEvent in loggingEvents)
{
EventsList.Remove(loggingEvent);
}
}
因为我也许不能获得最早的项目。
那么删除必须绑定到WPF usercontrol的列表中最老的项目的最有效方法是什么?