1

リストを作成するための私のコードは次のようになります。

[OperationContract]
List<it_position> GetAllPositions(){
   PositionDataClassesDataContext context = new PositionDataClassesDataContext();
   var result = from positions in context.it_positions select positions;
  return result.ToList();
}

そして、私はメソッドからデータを取得します

PositionServiceReference.PositionServiceClient service = new   
     PositionServiceReference.PositionServiceClient();
service.GetAllPositionsCompleted += new   
EventHandler<PositionServiceReference.GetAllPositionsCompletedEventArgs>
          (service_GetAllPositionsCompleted);
service.GetAllPositionsAsync();

しかし、どうすれば使用できる配列になるように結果を得ることができますか?それらは現在、データリストの単なるItemSorucesです...

void service_GetAllPositionsCompleted(object sender, 
            PositionServiceReference.GetAllPositionsCompletedEventArgs e)
{
    dgEmployee.ItemsSource = e.Result;

}
4

1 に答える 1

2

この行にブレークポイントを設定した場合:

dgEmployee.ItemsSource = e.Result;

マウスを上e.Resultに置くと、それが実際に a であることがわかりIEnumrable<it_position> ます。設定の前後に使用する必要がある場合は、次のe.Resultようにキャストするだけです。

void service_GetAllPositionsCompleted(object sender, 
            PositionServiceReference.GetAllPositionsCompletedEventArgs e)
{
    //var lst = e.Result as IEnumerable<it_positions>; <-- This gave error
    var lst = e.Result; // <-- This worked fine
    var ary = lst.ToArray();
    //go do fun stuff with the array
    dgEmployee.ItemsSource = e.Result;

}
于 2013-02-11T19:18:07.580 に答える