Использовать ".items" на ObservableCollection?(цикл через это) - PullRequest
0 голосов
/ 27 сентября 2011

Я получил "хорошо составленную" коллекцию ObservableCollection, и я хотел бы изучить ее.Это определение:

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

(да, это obsCol с obsCol в нем, но это нормально, проблема не в этом)

Я пробовал 2 разных способа, но они обане работает ...

1) .Items

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

.Items не работает, но когда я смотрю в C # документ, Items является допустимым полем ...(точно так же, как «Count», и «Count» работает ...)

2) Count + [x] acces:

var nbItems = _DataPools.Count;

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

_DataPools [i] не работает, но наВ Интернете я нашел пару примеров, где он используется oO

Я пробовал пару других "экзотических" вещей, но я действительно не могу пройти через это ...

Любая помощь будетДобро пожаловать!

Спасибо заранее и прошу прощения за мой язык, я французский -_- (прошу прощения и за моего президента!)

Ответы [ 4 ]

1 голос
/ 27 сентября 2011

_DataPools - это словарь, а не ObservableCollection.
Вам нужно перебрать .Values.

0 голосов
/ 27 сентября 2011

Вы используете словарь, поэтому вы должны использовать свойство Keys, чтобы зациклить ключи, и значения, чтобы зациклить ваши элементы. Это должно работать:

foreach(ObservableCollection<DependencyObject> obj in _DataPools.Values)
{
    blablaaaa;
    ....
}
0 голосов
/ 27 сентября 2011

_DataPools имеет тип словаря.Вы можете получить доступ к элементам словаря с помощью свойства Values.

foreach(ObservableCollection<DependencyObject> obj in _DataPools.Values)
0 голосов
/ 27 сентября 2011

_DataPool является , а не наблюдаемой коллекцией в наблюдаемой коллекции.Это словарь, который содержит наблюдаемые коллекции.Чтобы получить коллекции из словаря, используйте свойство Values :

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