在ObservableCollection上使用“.items”? (循环通过它)

时间:2011-09-27 13:20:01

标签: c# observablecollection

我有一个“构造良好”的ObservableCollection,我想检查它。 它的定义是:

private Dictionary<string, ObservableCollection<DependencyObject>> _DataPools = new Dictionary<string, ObservableCollection<DependencyObject>>();

(是的,它是一个带有obsCol的obsCol,但它没关系,问题不在这里)

我尝试了两种不同的方式,但它们都不起作用......

1).Items

foreach(ObservableCollection<DependencyObject> obj in _DataPools.Items)
        {
            blablaaaa;
            ....
        }

.Items不起作用但是当我查看C#doc时,Items是一个有效的字段......(就像“Count”和“Count”一样......)

2)计数+ [x]访问:

var nbItems = _DataPools.Count;

        for (int i = 0; i < nbItems; i++)
        {
            Console.WriteLine("Items : " + _DataPools[i].XXX); //XXX = ranom method
        }

_DataPools [i]不起作用,但在网上我发现了一些使用它的例子oO

我尝试了其他一些“异国情调”的东西,但我真的不能过去......

欢迎任何帮助!

提前thx并为我的语言sry,im french -_- (也为我的总统sry!)

4 个答案:

答案 0 :(得分:1)

_DataPools是字典,而不是ObservableCollection 您需要循环.Values

答案 1 :(得分:0)

_DataPool 不是可观察集合中的可观察集合。它是一个包含可观察集合的字典。要从字典中获取集合,请使用the Values property

foreach (ObservableCollection<DependencyObject> obj in _DataPools.Values)
{
    // some code
}

答案 2 :(得分:0)

_DataPools是Dictionary类型。您可以使用Values属性访问字典的元素。

foreach(ObservableCollection<DependencyObject> obj in _DataPools.Values)

答案 3 :(得分:0)

您正在使用词典,因此您应该使用属性键循环键和值来循环您的项目。这应该有效:

foreach(ObservableCollection<DependencyObject> obj in _DataPools.Values)
{
    blablaaaa;
    ....
}