我已经将LINQ to XML模型放在了一起,后面跟着ScottGu's Tutorial,它返回一个RSS提要,然后我可以使用foreach循环从数据中提取数据相同的.cs文件。传递一个类别中的项目以用于另一种形式
然后我把它放到它自己的类中,就像从代码中调用一样,但是我无法从我的其他页面访问“条目”来执行ForEach循环。我对此很新,想知道我需要写些什么?
继承人我的rss阅读器(从scotts松散建造)在其自己的.cs文件。我可以访问DataAnswerFeed,但不能访问“var items”。我需要一种方法来返回值吗?
public class DataAnswerFeed
{
public string AnsID { get; set; }
public string AnsQueID { get; set; }
public string AnsText { get; set; }
public string Correct { get; set; }
}
public class AnswerFeed
{
public AnswerFeed()
{
WebClient feed = new WebClient();
feed.DownloadStringCompleted += new DownloadStringCompletedEventHandler(feed_DownloadStringCompleted);
feed.DownloadStringAsync(new Uri("http://myRssFeed.xml"));
}
private static readonly XNamespace m = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata";
public void feed_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
XElement uri = XElement.Parse(e.Result);
var items = (from item in uri.Descendants(m + "properties")
select new DataAnswerFeed()
{
AnsID = item.Descendants().ToList()[0].Value,
AnsQueID = item.Descendants().ToList()[1].Value,
AnsText = item.Descendants().ToList()[2].Value,
Correct = item.Descendants().ToList()[3].Value
}).ToList();
}
}
}
在我的其他网页我写DataAnswerFeed资讯供稿=新DataAnswerFeed(); 然后我试图运行ForEach循环的方式与我在类中的方式相同,但得到一个错误,指出“GetEnumerator”没有公共定义?
宣布newFeed后,我的foreach在一个单独的虚空。
public void testPage_Loaded(object sender, RoutedEventArgs e)
{
// ForEach loop on the list
foreach (DataAnswerFeed a in newFeed)
{
//Show test data to check working
MessageBox.Show(a.AnsText);
}
}
谢谢...
这是什么类型?这是一个错字,你的意思是'这个'而不是? – thumbmunkeys 2011-04-30 16:48:59
对不起,这只是一般符号,因为我宣布newFeed ...这应该阅读newFeed – beat145 2011-04-30 17:18:38
恐怕你目前的做法不会工作,因为你异步检索饲料,即使你公开列表建议下面。 Silverlight的方式是更新一个模型属性,然后由某个UI元素使用 - 你不应该直接在接收到的数据上直接循环。 – BrokenGlass 2011-04-30 17:35:41