我已經將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