1

私はC#を初めて使用しますが、これは完全に私を困惑させています。マップの各領域()で必要なサービスの数を空間的に表すために使用される多くのテキストボックスを含むWPFフォームがありPropertyZoneます。

必要なすべてのデータをに戻すLINQクエリを記述できますがDataGrid、それを超えるデータに完全にアクセスすることはできません。データをにダンプしようとしましたがDataTable、役に立ちませんでした。のデータを確認できますがDataGrid、行を反復処理する方法がわかりません。DataGrid、、またはその他の方法を使用してデータにアクセスするかDataTableどうかは関係ありません。CollectionつまずいたCollection場合、それは良い解決策のように思えますが、 inner joinsとaの使用はcount()私の失敗のようです。

生成されるデータの列は2つあります。

Column1=PropertyZone 
Column2=CountOfServicesInThatPropertyZone

この値を調べてColumn1 Row1それに基づいて、の値Column2 Row1と同じ名前のテキストボックスに値をダンプしColumn1 Row1、2つの列のそれぞれのすべての行に対してこれを実行します。

これは機能する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 に答える