在将集合绑定到列表框之前更改集合的结果

本文关键字:集合 结果 绑定 列表 | 更新日期: 2023-09-27 18:13:16

我运行了一个简单的Linq to XML查询,结果绑定到listbox(通过collection)。我不能弄清楚的是如何在绑定它们之前改变结果,例如。我有以下代码:

 XElement xmlEvents = XElement.Parse(e.Result);
 lstb.ItemsSource = from GetEvents in xmlEvents.Descendants("e2event")
     select new GetEvents
     {
         eventid = GetEvents.Element("eventid").Value,
         eventtime = GetEvents.Element("eventtime").Value
     };

eventtime返回linux时间戳,我有一个小方法,将其转换为日期时间戳。那么,在绑定到listbox之前,我该如何进行转换呢?

在将集合绑定到列表框之前更改集合的结果

最简单的方法就是改变你的投影:

XElement xmlEvents = XElement.Parse(e.Result);
lstb.ItemsSource =
            from GetEvents in xmlEvents.Descendants("e2event")
            select new GetEvents
            {
                 eventid = GetEvents.Element("eventid").Value,
                 eventtime = ConvertTime(GetEvents.Element("eventtime").Value)
            };

(其中ConvertTime是您的方法)

注意,如果这是一个整数值,您可以让LINQ to XML为您执行数字转换:

XElement xmlEvents = XElement.Parse(e.Result);
lstb.ItemsSource =
            from GetEvents in xmlEvents.Descendants("e2event")
            select new GetEvents
            {
                 eventid = GetEvents.Element("eventid").Value,
                 eventtime = ConvertTime((long) GetEvents.Element("eventtime"))
            };