Zuerst ich Datenkontext von DataGridView zu einem anonymen Typ, der von Generic Class erhalten wird Company
Anonyme Art ist bevorzugt, um gewünschte Spaltennamen zur Anzeige in DataGridView erhalten.DataGridView.SelectedItem [0] to GenericType
var companyData = (from c in dataContext.Companies
select new
{
Company =c.CompanyName,
City=c.City.CityName,
});
dataGridView.DataContext = companyData;
Jetzt möchte ich die Auswahl Zeile Werte zum Zeitpunkt der MouseDoubleClick-Ereignis. Aber das Problem ist, ich kann den anonymen Typ nicht zu meinem generischen Typ Firma konvertieren.
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.
}
Ich möchte etwas wie folgt aus:
Company company = selectedRow.Select(c=>new Company
(CompanyName=selectedRow.Company,
CityName=selectedRow.City);
Danke im Voraus.
konvertieren Aber dann nicht ich gewünschten Spaltennamen für die Anzeige Zweck erhalten. Ich habe meinen Zweck erwähnt, anonymen Typ – Marshal
zu verwenden. Ich glaube nicht, dass es einen saubereren Weg gibt, dies zu tun, obwohl es einige Hacks gibt. Sie sollten eine konkrete Klasse (für die Benennung) erstellen und eine Liste von Klassenobjekten über eine LINQ-Abfrage anstelle des anonymen Typs erstellen. –
Warum müssen Sie das Objekt zurück in ein Unternehmen konvertieren? Woher kommt die ursprüngliche 'Company'? – phoog