2013-02-26 20 views
13

DataGridView satırını bulmak için LINQ stili sorgusu kullanmanın bir yolu var mı? Belirli bir nesneye bağlı olanı bulmaya ve vurgulamaya çalışıyorum.DataGridView satırını bulmak için LINQ'u nasıl kullanabilirim?

MyDatagrid.Rows.FirstOrDefault(r => r.DataBoundItem == myItem).Selected = true; 

Hata 1 'System.Windows.Forms.DataGridViewRowCollection 'FirstOrDefault' ve uzatma yöntemi 'FirstOrDefault' türü bir birinci argüman kabul 'System.Windows.Forms.DataGridViewRowCollection için bir tanım içermez 'bulunamadı (bir kullanarak yönergesi veya bir derleme başvurusu eksik?)

cevap

30

yalnızca uygulayan DataGridViewRowCollection beri IEnumerable<DataGridViewRow> yayın yapmak için ihtiyaç IEnumerable:

VB-sürümü aramaya geldim olanlar için
1

, Lee'nin cevabı şöyle açıklanabilir: Eğer benim gibi konum ve adresinin DataGridViewRow bulmak için bu kullanıyorsanız,

MyDatagrid.Rows.Cast(Of DataGridViewRow)().FirstOrDefault(Function(r) r.DataBoundItem Is myItem).Selected = True 

Ayrıca senin bağlı DataTable.DataRow (DataGridView.DataSource = DataTable), o zaman bu gibi erişebilirsiniz: Bu çok daha verimli değerlerle eşleşen arayarak DataGridView döngü daha

Dim MyDataRowSearch() As DataRow = MyDataTable.Select("SomeColumn = SomeValue") 
If MyDataRowSearch.Count = 1 Then 
    MyDataGrid.Rows.Cast(Of DataGridViewRow)().FirstOrDefault(Function(r) DirectCast(r.DataBoundItem, DataRowView).Row Is MyDataRowSearch(0)).Selected = True 
End If 

.

İlgili konular