2016-04-29 38 views
0

我想将我的数据库中的ECH_INTITULE与listview行的值进行比较,但是我的问题是我无法访问我的Linq中的Listview项目在这里查询获取WPF Listview行的值,并使用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

相关问题