首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

LINQ for XML数据传接失败,请高人帮忙

2012-12-17 
LINQ for XML数据传递失败,请高人帮忙。根据VS2012的模板,修改了一个Windows apps类:SampleDataSource。大意

LINQ for XML数据传递失败,请高人帮忙。
根据VS2012的模板,修改了一个Windows apps类:SampleDataSource。大意是从XML文件读取数据, 用到了LINQ for XML,然后添加到group1.Items中。
但是代码运行完后,group1.Items总是为空,不能生成数据。好像是IEnumerable<XElement> _els没有 new的原因?对C#不是很精通,不清楚是什么原因,会不会是数据传递时出错了呢,请大家帮忙,谢谢!
附上代码如下: 


using Windows.Storage;
using System.Xml.Linq;
using System.IO;
        
        public sealed class SampleDataSource
        {
            private IEnumerable<XElement> _els;

            public async void setgroupedItemsViewSource()
            {
                var picturesLibrary = Windows.Storage.KnownFolders.PicturesLibrary;
                Windows.Storage.StorageFile file = await picturesLibrary.GetFileAsync(@"file.xml");

                XDocument doc1 = new XDocument();
                using (Stream stream = await file.OpenStreamForReadAsync())
                {
                    doc1 = XDocument.Load(stream);
                }
                var els = from el in doc1.Root.Elements()
                          select el;
                this._els = els;
            }

            public SampleDataSource()
        {
            setgroupedItemsViewSource();
            foreach (XElement el in this._els)
             {
                  group1.Items.Add(new SampleDataItem((string)el.Attribute("id"));
             }

            }
        }

[最优解释]
把你的 
foreach (XElement el in this._els)
{
     group1.Items.Add(new SampleDataItem((string)el.Attribute("id"));
}
移到 setgroupedItemsViewSource 里,其他不用动。
[其他解释]
setgroupedItemsViewSource();调用的时候,没有await,它是异步执行的。


   foreach (XElement el in this._els) 当然没有值
[其他解释]
同上_字数补丁
[其他解释]
谢谢fangxinggood!
可是await应该加在哪里呢,直接改成await setgroupedItemsViewSource()没有用,是不是还得用TASK呢。
await/async一时搞不明白,请大虾帮帮忙改一下整个代码,万分感谢!
[其他解释]

引用:
setgroupedItemsViewSource();调用的时候,没有await,它是异步执行的。
   foreach (XElement el in this._els) 当然没有值


谢谢!
 可是await应该加在哪里呢,直接改成await setgroupedItemsViewSource()没有用,是不是还得用TASK呢。
await/async一时搞不明白,请大虾帮帮忙改一下整个代码,万分感谢! 
[其他解释]
前两天调试通了,没有及时结贴给分,SRY

热点排行