我需要在另一个ObservableCollection中添加ObservableCollection ObservableCollection,可以吗?
Items = new ObservableCollection<WidgetCollectionItem>();
foreach (XElement wid in document.Root.Elements("widget"))
{
WidgetCollectionItem item = new WidgetCollectionItem();
item.nombreWidget = wid.Attribute("caption").Value;
foreach (XElement service in wid.Elements("service"))
{
item.nombreServicio = service.Attribute("caption").Value;
item.valor = service.Element("xvalue").Value;
item.color = service.Element("xcolor").Value;
item.alerta = service.Element("xalert") != null ? service.Element("xalert").Value : null;
Items.Add(item);
}
}问题是每个(item.nombreWidget)都包含多个(item.nombreServicio)。并且我需要在nombreWidget的ObservableCollection中包含服务的ObservableCollection
发布于 2013-01-10 00:10:23
可以,停那儿吧。
new ObservableCollection<ObservableCollection<WidgetCollectionItem>>()所以你可以这样做:
Items = new ObservableCollection<ObservableCollection<WidgetCollectionItem>>();
foreach (XElement wid in document.Root.Elements("widget"))
{
ObservableCollection<WidgetCollectionItem> services = new ObservableCollection<WidgetCollectionItem>();
foreach (XElement service in wid.Elements("service"))
{
WidgetCollectionItem widget = new WidgetCollectionItem();
widget.nombreWidget = wid.Attribute("caption").Value;
widget.nombreServicio = service.Attribute("caption").Value;
widget.valor = service.Element("xvalue").Value;
widget.color = service.Element("xcolor").Value;
widget.alerta = service.Element("xalert") != null ? service.Element("xalert").Value : null;
services.Add(widget);
}
Items.Add(services)
}发布于 2013-01-10 17:33:15
好主意很简单,但还是不能说明我想要什么。我获取了一个xml数据,它们希望它们显示在网格中
最终结果如下所示:
nombreWidget1 nombreServicio1
nombreWidget2 nombreServicio2 nombreServicio2 nombreServicio2
如果nombreWidget只有一个服务可以,但如果您有多个nombreWidget nombreServicio,我无法在屏幕上很好地显示
我需要ObservableCollection
public class WidgetCollectionItem
{
public string nombreWidget { get; set; }
}包含ObservableCollection
public class WidgetServiciosCollectionItem
{
public string nombreServicio { get; set; }
public string valor { get; set; }
public string color { get; set; }
public string alerta { get; set; }
}发布于 2013-01-10 20:07:45
看起来我得到了我想要实现的东西,但仍然没有显示网格中的所有数据:
之前的解决方案:
Items = new ObservableCollection<WidgetCollectionItem>();
foreach (XElement wid in document.Root.Elements("widget"))
{
WidgetCollectionItem widget = new WidgetCollectionItem();
widget.nombreWidget = wid.Attribute("caption").Value;
foreach (XElement service in wid.Elements("service"))
{
ServiciosWidgetCollectionItem ser = new ServiciosWidgetCollectionItem();
widget.ItemsSer = new ObservableCollection<ServiciosWidgetCollectionItem>();
ser.nombreServicio = service.Attribute("caption").Value;
ser.valor = service.Element("xvalue").Value;
ser.color = service.Element("xcolor").Value;
ser.alerta = service.Element("xalert") != null ? service.Element("xalert").Value : null;
widget.ItemsSer.Add(ser);
}
Items.Add(widget);
}
public class WidgetCollectionItem
{
public string nombreWidget { get; set; }
public ObservableCollection<ServiciosWidgetCollectionItem> ItemsSer { get; set; }
}
public class ServiciosWidgetCollectionItem
{
public string nombreServicio { get; set; }
public string valor { get; set; }
public string color { get; set; }
public string alerta { get; set; }
}如何在数据网格ObservableCollection中运行?
https://stackoverflow.com/questions/14234823
复制相似问题