首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ListCollectionView获取内部物料编号

从ListCollectionView获取内部物料编号
EN

Stack Overflow用户
提问于 2010-12-09 23:16:31
回答 1查看 2.3K关注 0票数 2

我扩展了一个ListCollectionView并覆盖了GetItemAt,如下所示:

代码语言:javascript
复制
public class LazyLoadListCollectionView : ListCollectionView
{

  public override object GetItemAt(int index)
  {
    object rc = base.GetItemAt(index);
    // do something
    return rc;
  }
}

现在,对于我的“做点什么”,我需要知道项目在内部列表中的位置。只要ListCollectionView没有被排序,ListCollectionView的“索引”对于内部集合将是相同的,但是一旦ListCollectionView被重新排序,索引就会匹配内部集合中的索引(内部集合是一个ObservableCollection)。

那么,ListCollectionView从ListCollectionView中的索引中获取内部集合索引的位置呢?不是应该有一个"int index(Int ConvertToInternalIndex)“吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-10 01:49:10

我猜这是因为ListCollectionView的SourceCollection是IEnumerable类型的。要获得SourceCollection中的索引,可以尝试将其转换为IList并使用IndexOf。要从IEnumerable获取索引,请参阅this问题

代码语言:javascript
复制
public override object GetItemAt(int index)
{
    object rc = base.GetItemAt(index);
    // do something

    int internalIndex = -1;
    IList sourceCollection = SourceCollection as IList;
    if (sourceCollection != null)
    {
        internalIndex = sourceCollection.IndexOf(rc);
    }
    else
    {
        // See
        // https://stackoverflow.com/questions/2718139
    }
    return rc;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4399751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档