2013-10-28 81 views
-3

我有一個DataGridView中顯示此LINQ查詢的麻煩:顯示LINQ查詢在一個DataGridView

var result = from myrow in MydataTable.AsEnumerable() 
         where liste.Any(x => myrow.Field<string>("ID").ToUpper().Contains(x.ToUpper())) 
         select myrow; 
MyGrigdView.DataSource = result.Tolist(); 

輸出: enter image description here

回答

0

的問題是,在GridView需要獲得訪問的一些方法有關哪些列有效綁定數據的信息。如果它有一個包含每個列的屬性的對象,它可以工作,但你沒有。如果整個集合實現了一個給定的接口來解釋哪些列以及如何獲取它們,那麼它就可以工作。 DataTable實現了這樣一個接口,IEnumerable<DataRow>沒有。這裏最簡單的選項可能會將所有這些行重新放回DataTable,以便綁定可以運行。只需將ToList替換爲CopyToDataTable(您可能需要添加相關的using)。

+0

感謝您的解釋@Servyy! – Zack09