Tho*_*que 2 .net c# bindinglist
我正在实现我自己的BindingList<T>支持排序.到目前为止一切运作良好,但我对如何实施感到困惑RemoveSortCore.文档不是很明确,它只说:
如果在派生类中实现排序,则删除ApplySortCore应用的任何排序
这是否意味着我应该恢复项目的原始顺序?这个MSDN文章中显示的实现只设置_isSorted为false,而没有实际恢复原始顺序,这使得它很无用恕我直言...
如果我希望能够恢复原始订单,我想我需要保留原始集合的副本(或者有更好的方法吗?).但是,如果我这样做,我如何处理集合的修改?
InsertItem,我应该在未分类的副本末尾添加新项吗?RemoveItem,我在已排序的集合中给出了索引.但这意味着如果我还想从未排序的集合中删除该项,我需要找到它的原始位置,这是一个O(n)操作,而RemoveItem通常期望是O(1)操作.同样的问题也适用于SetItem.你会怎么处理?欢迎任何建议
由实施者来确定这意味着什么.两个最明显的选择是:
将列表还原为原始格式:此处为官方示例
删除排序并继续,就像从未应用过一样:在MS.SqlServer.Management.Controls.SortableBindingList中使用
| 归档时间: |
|
| 查看次数: |
911 次 |
| 最近记录: |