使用“;.项目”;在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上我发现了几个使用它的例子
我尝试了其他一些"异国情调"的东西,但我真的无法回顾…
欢迎任何帮助!
这是我的语言,我是法国人-_-(我的总统也是!(
_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;
....
}