2016-04-29 3 views
0

私のデータベース内のECH_INTITULEをリストビュー行の値と比較したいのですが、私の問題はLinqのListview項目にアクセスできないクエリWPFリストビュー行の値を取得し、Linqクエリを使用してデータベースフィールドと比較してください

ここでは私のリストビューのための私のXAMLコードです:

<ListView x:Name="listView" SelectedItem="{Binding SelectedItem}" ItemsSource="{Binding}" DataContext="query" HorizontalAlignment="Left" Height="430" Margin="24,47,0,0" VerticalAlignment="Top" Width="940" > 
     <ListView.View> 
      <GridView x:Name="gridView"> 
       <GridViewColumn Header="Fournisseur" DisplayMemberBinding="{Binding fournisseur}" Width="280"/> 
       <GridViewColumn Header ="Adresse Mail" DisplayMemberBinding="{Binding email}" Width="270"/> 
       <GridViewColumn Header ="Date" DisplayMemberBinding="{Binding date}" Width="150"/> 
       <GridViewColumn Header="Fichier CSV" DisplayMemberBinding="{Binding xxx}" Width="105"/> 
       <GridViewColumn Header="Fichier PDF" DisplayMemberBinding="{Binding xxx}" Width="105"/> 
      </GridView> 
     </ListView.View> 
    </ListView> 

、ここでは、私のC#のコードです:

//Generate CSV Files for each item in the Listview 
     CsvFileDescription outpCsvFileDescription = new CsvFileDescription 
     { 
      SeparatorChar = ',', 
      FirstLineHasColumnNames = true 
     }; 

     for (int i = 0; i < listView.Items.Count; i++) 
     { 
      var infoEcheances = from f in db.F_ECHEANCES 
           //where f.ECH_Intitule == ??? 
           select new { f.ECH_Intitule, f.ECH_DateEch, f.CG_Num, f.ECH_Piece, f.ECH_RefPiece, f.ECH_Montant, f.ECH_Libelle }; 


      CsvContext cc = new CsvContext(); 
      string myPath = @"C:\Users\DefaultAccount\Desktop\Projet Top Of Travel\FichiersCSV\"; 
      string filename = string.Format("Facture{0}.csv", i); 
      string finalPath = System.IO.Path.Combine(myPath, filename); 
      cc.Write(infoEcheances, finalPath, outpCsvFileDescription); 
     } 

答えて

0

あなたが直接そのように行を比較することはできません。 下記のコードで試してください。

//Generate CSV Files for each item in the Listview 
    CsvFileDescription outpCsvFileDescription = new CsvFileDescription 
    { 
     SeparatorChar = ',', 
     FirstLineHasColumnNames = true 
    }; 

    for (int i = 0; i < listView.Items.Count; i++) 
    { 
     var infoEcheances = from f in db.F_ECHEANCES 
          where f.ECH_Intitule == listView.Items[i].f.ECH_Intitule 
          select new { f.ECH_Intitule, f.ECH_DateEch, f.CG_Num, f.ECH_Piece, f.ECH_RefPiece, f.ECH_Montant, f.ECH_Libelle }; 


     CsvContext cc = new CsvContext(); 
     string myPath = @"C:\Users\DefaultAccount\Desktop\Projet Top Of Travel\FichiersCSV\"; 
     string filename = string.Format("Facture{0}.csv", i); 
     string finalPath = System.IO.Path.Combine(myPath, filename); 
     cc.Write(infoEcheances, finalPath, outpCsvFileDescription); 
    } 
+0

私には次のようなエラーがあります。オブジェクトにはfの定義が含まれていません。それで引数ECH_INTITULEは受け入れられません:listview、Items [1] .f.ECH_INTITULE –

+0

サンプルとして与えたものです。あなたの要件に応じてあなたの項目名に置き換える必要があります – ViVi

関連する問題