1

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

我可以编写一个 LINQ 查询,将我所有必要的数据带回一个DataGrid.,但我完全无法访问除此之外的数据。我试图将数据转储到DataTable中,但无济于事。我可以看到 中的数据DataGrid,但我不知道如何遍历行。我不在乎是否使用DataGrid,DataTableCollection任何其他方法来访问数据。绊倒 aCollection似乎是一个很好的解决方案,但使用inner joins 和 acount()似乎是我的失败。

有两列数据正在生成:

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;

我希望这很清楚。

4

1 回答 1

1

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

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;
于 2013-01-17T02:46:54.477 回答