传递类中的项目以便以其他形式使用

时间:2011-04-30 15:51:49

标签: c# windows-phone-7

我将ScottGu's Tutorial后面的LINQ to XML模型放在一起,它返回一个RSS提要,然后我可以使用foreach循环来获取数据,当我把它放在相同的.cs文件中时。< / p>

然后我把它放到它自己的类中,从代码调用,但是我不能从我的其他页面访问“items”来执行ForEach循环。我对此很陌生,想知道我需要写什么?

继承我自己的.s文件中的rss阅读器(由scotts松散构建)。我可以访问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 newFeed = new 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);
        }

    }

...谢谢

1 个答案:

答案 0 :(得分:0)

将此添加到您的AnswerFeed课程

   public static List<DataAnswerFeed> Answers = new List<DataAnswerFeed>();

然后将查询结果分配给它

   Answers = (from item in uri.Descendants(m + "properties") ...

testPage_Loaded

   foreach (DataAnswerFeed a in AnswerFeed.Answers)

拥有静力学并不好,但它会起作用;)