如何使用解析页面将列表从类复制到Windows Phone 8.1中的另一个类

时间:2015-06-01 15:43:47

标签: c# list parsing windows-phone-8.1

我想将PurePcData中list_data中的项目复制到MainPage - > list_PurePc。

MainPage.cs:

public List<PurePcData> list_PurePc = new List<PurePcData>();

public MainPage()
{
    this.InitializeComponent();
    this.NavigationCacheMode = NavigationCacheMode.Required;
    PurePcData purePc = new PurePcData();
}

PurePcData.cs:

public class PurePcData
{
    private string url = "http://www....";
    public string Title { get; set; }
    public BitmapImage Image { get; set; }
    public string Content { get; set; }

    public List<PurePcData> list_data = new List<PurePcData>();
    public MainPage main;

    public PurePcData()
    {
        Parsing();
    }

    public PurePcData(string title, BitmapImage image, string content)
    {
        Title = title;
        Image = image;
        Content = content;
    }


    private async void Parsing()
    {
        try
        {
            string url_string;
            using (var client = new HttpClient())
            {
                url_string = await client.GetStringAsync(new Uri(url));
            }

            HtmlDocument htmlDocument = new HtmlDocument();
            htmlDocument.LoadHtml(url_string);

            HtmlNode node = htmlDocument.DocumentNode.Descendants("div").FirstOrDefault(o => o.GetAttributeValue("class", null) == "latest_items");
            HtmlNodeCollection nodeCollection = node.ChildNodes;

            foreach (HtmlNode itemNode in nodeCollection)
            {

                var titleAndImage = itemNode.Descendants("a").FirstOrDefault(x => x.GetAttributeValue("class", null) == "ni_image");
                if (titleAndImage != null)
                {
                    var attributes = titleAndImage.Descendants("img").FirstOrDefault(x => x.GetAttributeValue("alt", "") != null);
                    var title = attributes.Attributes["alt"].Value;
                    var image = attributes.Attributes["src"].Value;

                    list_data.Add(new PurePcData(title, new BitmapImage(new Uri(image)), ""));

                }
            }
            //IN THIS PLACE, I want Send DATA FROM list_data to list_PurePc in MainPage

        }
        catch (Exception e)
        {
            MessageDialog msgDialog = new MessageDialog(e.Message);
            msgDialog.ShowAsync();
        }
    }

我试图使用静态列表,对象来做到这一点。没有任何效果。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

我发现问题,这是异步方法。当客户端将html代码下载到&#34; url_string&#34;领域,方法继续工作。有没有办法,该方法等到下载数据?或将方法转换为非同步?