1
首先,我將DataGridView的datacontext分配給從通用類Company
獲取的匿名類型。首選匿名類型以獲取要在DataGridView中顯示的所需列名稱。DataGridView.SelectedItem [0]到GenericType
var companyData = (from c in dataContext.Companies
select new
{
Company =c.CompanyName,
City=c.City.CityName,
});
dataGridView.DataContext = companyData;
現在我想在MouseDoubleClick事件時獲取選擇行值。但問題是我無法將匿名類型轉換回我的泛型公司。
void dataGridView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
var selectedRow = dataGridView.SelectedItem[0];
// How to convert selectedRow back to Company ?
// Anonymous type have no implementation of AsEnumerable.
}
我想是這樣的:
Company company = selectedRow.Select(c=>new Company
(CompanyName=selectedRow.Company,
CityName=selectedRow.City);
預先感謝您。
但我不明白的顯示用途所需的列名。我已經提到了我使用匿名類型的目的 – Marshal 2012-04-13 05:59:28
我不認爲有任何更乾淨的方法來做到這一點,雖然有一些黑客。您應該製作一個具體的類(用於命名),並通過LINQ查詢而不是匿名類型製作類對象列表 – 2012-04-13 06:23:57
爲什麼您需要將對象轉換回公司?最初的「公司」從哪裏來? – phoog 2012-04-13 06:27:03