首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ObservableCollection中添加ObservableCollection

在ObservableCollection中添加ObservableCollection
EN

Stack Overflow用户
提问于 2013-01-09 20:04:35
回答 3查看 1.2K关注 0票数 1

我需要在另一个ObservableCollection中添加ObservableCollection ObservableCollection,可以吗?

代码语言:javascript
复制
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

EN

回答 3

Stack Overflow用户

发布于 2013-01-10 00:10:23

可以,停那儿吧。

代码语言:javascript
复制
new ObservableCollection<ObservableCollection<WidgetCollectionItem>>()

所以你可以这样做:

代码语言:javascript
复制
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)
}
票数 0
EN

Stack Overflow用户

发布于 2013-01-10 17:33:15

好主意很简单,但还是不能说明我想要什么。我获取了一个xml数据,它们希望它们显示在网格中

最终结果如下所示:

nombreWidget1 nombreServicio1

nombreWidget2 nombreServicio2 nombreServicio2 nombreServicio2

如果nombreWidget只有一个服务可以,但如果您有多个nombreWidget nombreServicio,我无法在屏幕上很好地显示

我需要ObservableCollection

代码语言:javascript
复制
public class WidgetCollectionItem
{
    public string nombreWidget { get; set; }
}

包含ObservableCollection

代码语言:javascript
复制
public class WidgetServiciosCollectionItem 
{
        public string nombreServicio { get; set; }
        public string valor { get; set; }
        public string color { get; set; }
        public string alerta { get; set; }
}
票数 0
EN

Stack Overflow用户

发布于 2013-01-10 20:07:45

看起来我得到了我想要实现的东西,但仍然没有显示网格中的所有数据:

之前的解决方案:

代码语言:javascript
复制
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中运行?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14234823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档