使用“;.项目”;在ObservableCollection上?(循环浏览)

本文关键字:循环 浏览 ObservableCollection 项目 使用 | 更新日期: 2023-09-27 18:10:02

我得到了一个"构造良好"的ObservableCollection,我想检查一下。它的定义是:

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

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

我尝试了两种不同的方法,但都不起作用。。。

1( .项目

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

.Items不起作用,但当我查看C#文档时,Items是一个有效字段。。。(就像"计数"一样,"计数"起作用…(

2( 计数+[x]加速度:

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

_DataPools[i]不起作用,但在web上我发现了几个使用它的例子

我尝试了其他一些"异国情调"的东西,但我真的无法回顾…

欢迎任何帮助!

这是我的语言,我是法国人-_-(我的总统也是!(

使用“;.项目”;在ObservableCollection上?(循环浏览)

_DataPools是一个字典,而不是ObservableCollection
您需要在.Values上循环。

_DataPool不是可观察集合中的可观察集合。这是一本包含可观察集合的词典。要从字典中获取集合,请使用Values属性:

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

_DataPools的类型为Dictionary。您可以访问具有Values属性的字典的元素。

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

您使用的是Dictionary,因此您应该使用属性Keys在键上循环,使用属性Values在项上循环。这应该有效:

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