ListBox不显示XML文件中的数据

时间:2012-10-11 23:15:03

标签: c# xml listbox

问题:我将数据保存到XML文件中,但是当我重新打开应用程序时,XML文件中的数据应该填充我的列表框但是没有显示任何内容。我已经在这里待了2个小时,但是找不到问题。

加载xml文件的代码:

public void Load()
{
    XDocument myDoc = XDocument.Load(".../.../parking.xml");

    var ticks = from xElem in myDoc.Descendants("Ticket")
               select new Ticket
               {
                   TimeIn = Convert.ToDateTime(xElem.Element("TimeIn").Value),
                   TicketNum = Convert.ToInt32(xElem.Element("TicketNumber").Value),
               };

    this.Clear();

    AddRange(ticks);
}

我的代码试图填充列表框:

{
        newList = new TickList();

        newList.Load();

        foreach (var nTick in newList)
        {
            spotList.Items.Add(nTick.ToString());
        }
    }

编辑:http://pastebin.com/YwPj0Nxc

无法找到在此网站上格式化的好方法,但那是XML文件。

蓝精灵编辑:添加pastebin XML

<?xml version="1.0" encoding="utf-8"?>
<Tickets>
  <Ticket>
    <TicketNum>1</TicketNum>
    <TimeIn>2012-10-11T17:49:49.896445-05:00</TimeIn>
  </Ticket>
  <Ticket>
    <TicketNum>2</TicketNum>
    <TimeIn>2012-10-11T17:49:50.2714664-05:00</TimeIn>
  </Ticket>
  <Ticket>
    <TicketNum>3</TicketNum>
    <TimeIn>2012-10-11T17:49:50.4304755-05:00</TimeIn>
  </Ticket>
  <Ticket>
    <TicketNum>4</TicketNum>
    <TimeIn>2012-10-11T17:49:50.5944849-05:00</TimeIn>
  </Ticket>
</Tickets>

2 个答案:

答案 0 :(得分:1)

如果不查看XML文件本身就无法回答。确保所有属性和名称都与查询匹配。在将TicketList绑定到ListBox之前,请确保它具有数据。您需要进行大量调试。我认为问题是你的Linq查询。您需要简化LINQ查询。

更新:您的元素名称不匹配。我认为LINQ也缺少它的外部“Tickets”元素。它应该在“门票”中的每个元素。它说“TicketNum”,但XML有“TicketNumber”。

答案 1 :(得分:0)

看起来XML与LINQ中存在拼写错误:

Convert.ToInt32( xElem.Element( "TicketNumber" ).Value )

应该是:

Convert.ToInt32( xElem.Element( "TicketNum" ).Value )