2017-12-18 37 views
0

WPFアプリケーションでデータグリッドを使用していますが、ボタンclick.Iのリスト内のすべての行の値を取得したいのですが、いくつかの方法を試しましたが、 ...WPFでDataGridからすべての行を取得する方法

private async void Save_Btn_Click(object sender, RoutedEventArgs e) 
     { 
      pojo rowdata = new pojo(); 
      int rowcount = calendarmstrDG.Items.Count; 
      List<pojo> pojolist = new List<pojo>(); 
      var rows = (calendarmstrDG).SelectedItems; 
      for (int i = 1; i < rowcount - 1; i++) 
      { 
       pojo sda = (pojo)calendarmstrDG.SelectedItems; 
       pojolist.Add(sda); 
      } 
      } 

ここcalendarmstrDGはforeachループを使用して、すべてのアイテムの上に

public class pojo 
     { 
      public string Prefix { get; set; } 
      public int Year { get; set; } 
      public int Quarter { get; set; } 
      public int SerialNo { get; set; } 
      public string From { get; set; } 
      public string To { get; set; } 
      public string PeriodName { get; set; } 
     } 
+0

1.選択したアイテムにのみアクセスしています。 2.あなたのforループでは、 "i"を使用して行単位で行を選択していません。 – royalTS

+0

正確なコードで助けてください。すべての行が必要です。 – Markz

答えて

1

反復... ... POJOは私のモデルクラスの名前である私のデータグリッドの名前です:

私たちはあなたが pojoの新しいリストを取得する必要がある場合の特性

にアクセスできるように正確な型pojoを指定する必要がforeachループにおけるよう

DataGrid.Itemsコレクションは、タイプobjectの要素が含まれ、それが行うことができますLINQので:

List<pojo> list = calendarmstrDG.Items.OfType<pojo>().ToList(); 
+0

@Markz、foreachループ内の単一項目で操作を実行できます。リストを取得してリストを反復することができます。私は2つの例を与えました – ASh

+1

@Markz WebAPI全体の話題はあなたの質問の一部ではありません(それは別の要件ではありません)ので、WebAPIを含む回答は期待しないでください。あなたがどこかにいる - あなたが良い焦点を絞った質問をするならば、あなたはすでに得た2つのような良い集中的な答えを得ることができます。一般的なガイダンスが必要な場合は、stackoverflowのような質問+回答のWebサイトが間違った場所です。 – grek40

+0

あなたのガイダンスのおかげで@ASh ...期待通りの結果が得られました。 – Markz

1

あなたは、DataGridにデータをバインドするためにObservableCollectionを使用することができますし、何の努力なしでそれを使用してデータを取得することができます。このようなもの:

Class MyClass 
{ 
    ObservableCollection<pojo> myCollection {get;set;} 
    MyClass() 
    { 
     calendarmstrDG.DataContext = myCollection; 
    } 
    public void AddData() 
    { 
     myCollection.Add(new pojo(){ // Add Values }); 
    } 
    public void Save_Btn_Click(object sender, RoutedEventArgs e) 
    { 
     foreach(pojo items in myCollection) 
     { 
      // here get items using items.Prefix/year/.... 
     } 
    } 

} 
+0

@マークスここでコメントに質問することはできません。あなたがしたい場合は、あなたが試みたコードと一緒に、この質問への拡張を示す別の質問として尋ねることができます.... – Gopi

関連する問題