如何使多个列表的每个元素单行显示在DataGrid上

时间:2019-09-16 09:38:37

标签: c# selenium uwp-xaml

我有一个网络爬虫,可从航空公司网站获取数据。

我希望程序在其各自的行中显示每个元素。

            foreach (string url in urlList)
            {
                driver.Navigate().GoToUrl(url);

                try
                {
                    var DepAirport = driver.FindElementsByXPath("//td[@class='depdest']/div[@class='content']").ToList();
                    var ArrAirport = driver.FindElementsByXPath("//td[@class='arrdest']/div[@class='content']").ToList();
                    var DepTime = driver.FindElementsByXPath("//td[@class='depdest']/div[@class='content emphasize']").ToList();
                    var ArrTime = driver.FindElementsByXPath("//td[@class='arrdest']/div[@class='content emphasize']").ToList();
                    var Price = driver.FindElementsByXPath("//td[@class='fareselect standardlowfare']/div[@class='content']/label[@class='label seatsokfare']").ToList();

                    foreach(var da in DepAirport)
                    {                 
                        _entries.Add(new EntryModel { DepartureAirport = da.Text });
                    }
                    foreach (var aa in ArrAirport)
                    {
                        _entries.Add(new EntryModel { ArrivalAirport = aa.Text });
                    }
                    foreach (var dt in DepTime)
                    {
                        _entries.Add(new EntryModel { DepartureTime = dt.Text });
                    }
                    foreach (var at in ArrTime)
                    {
                        _entries.Add(new EntryModel { ArrivalTime = at.Text });
                    }
                    foreach (var p in Price)
                    {
                        _entries.Add(new EntryModel { Price = p.Text });
                    }
                }
                catch (Exception e)
                {

                }

它收集数据并将其显示在Grid上,但是结果如下所示:

image

1 个答案:

答案 0 :(得分:0)

您需要设置所有EntryModel属性。像这样:

for (var i = 0; i < DepAirport.Count; i++)
{
    _entries.Add(new EntryModel
    {
        DepartureAirport = DepAirport[i].Text,
        ArrivalAirport = ArrAirport[i].Text,
        DepartureTime = DepTime[i].Text,
        ArrivalTime = ArrTime[i].Text,
        Price = Price[i].Text
    });
}

问题在于,每次对_entries.Add(..的调用都会创建一个新条目,并因此创建一个新行。但是,每一行只有一个属性集。

相关问题