J'essaie de créer une interface Fluent pour le format de données Winforms. Cela devrait me permettre d'utiliser une source de données typé et l'utilisation facile des propriétés des propriétés (Order.Custom.FullName)Création de types anonymes basés sur l'expression lambda
J'ajoute les colonnes à l'initialisation et en essayant de définir la propriété d'y utiliser:
dgv.With<Order>().Column("Client Name").On(x => x.Client.FullName);
la question initiale se pose alors lors de la mise DataSource:
dgv.SetTypedDatasource<T>(IList<Order> orders)
Un gros problème ici est que les contrôles génériques ne sont pas possibles (je suppose), de sorte que T ne peut pas être spécifiée pour la classe, mais doit être spécifié par méthode ...
Je veux créer une liste des types anonymes, sur la base d'une propriété donnée dans une expression lambda:
quelque chose comme:
ProcessList<Client>(clientList, x => x.FullName);
Est-il possible de faire quelque chose comme ceci:
[Modifier] Notez que dans la pratique, les expressions seront définies plus tôt, et seront récupérées ailleurs ...
public void ProcessList<T>(IList<T> sourceList, Expression<Func<T, object>> expression)
{
var list =
(from T x
in sourceList
select new { expression })
.ToList();
// process list .... grid.DataSource = list;
}
Donc, je voudrais créer des types anonymes basés sur l'expression donnée. Je sais que je peux évaluer cette expression pour récupérer les bonnes propriétés.
Je suis coincé, est-ce quelque chose comme ça possible?
Des idées?
Je ne suis pas tout à fait sûr, que voulez-vous dans votre type anonyme? – driis