如何在WPF中迭代LINQ数据集,计数作为查询的一部分



我是c#新手,这完全把我难住了。我有一个带有许多文本框的WPF表单,用于在空间上表示地图的每个区域(PropertyZone)所需的服务数量。

我可以编写一个LINQ查询,将所有必要的数据带回DataGrid,但我完全无法访问超出该范围的数据。我曾试图将数据转储到DataTable中,但无济于事。我可以看到DataGrid中的数据,但我不知道如何遍历行。我不在乎我是否使用DataGrid, DataTable, Collection或任何其他方法来访问数据。在跌跌撞撞的Collection似乎是一个很好的解决方案,但使用inner join s和count()似乎是我的失败。

产生两列数据:

Column1=PropertyZone 
Column2=CountOfServicesInThatPropertyZone

我想看看Column1 Row1,并基于此值,将Column2 Row1的值转储到与Column1 Row1中的值同名的文本框中,并为每两列中的所有行执行此操作。

这是LINQ查询确实工作,但我已经完全无法访问数据。

var query =
      from o in con.ORDER_LINE_TABLEs
      join p in con.PROPERTY_TABLEs on o.PropertyNumber equals p.PropertyNumber 
      where o.ServiceNumber == 2
      group o by p.PropertyZone into g
      select new { PropertyZone = g.Key, CountOfServicesInThatPropertyZone = g.Count() };
ServiceDataGrid.ItemsSource = query;

我希望这是清楚的。

如果您想访问特定的项,则必须运行查询并将结果存储在某处,例如在List中。然后,您可以将DataGrid绑定到相同的List:

var query =
  from o in con.ORDER_LINE_TABLEs
  join p in con.PROPERTY_TABLEs on o.PropertyNumber equals p.PropertyNumber 
  where o.ServiceNumber == 2
  group o by p.PropertyZone into g
  select new { PropertyZone = g.Key, CountOfServicesInThatPropertyZone = g.Count() };
var myList = query.ToList();
ServiceDataGrid.ItemsSource = myList;
var row1Col1Value = myList[0].PropertyZone;
var row1Col2Value = myList[0].CountOfServicesInThatPropertyZone;

相关内容

  • 没有找到相关文章