Mes expressions ne sont pas géniales et j'aimerais les améliorer donc je me demande si quelqu'un pourrait expliquer pour moi s'il est possible de créer une propriété dans une classe qui peut recevoir une valeur comme instanciation:Expression <Func <TModel, TProperty >> as Propriété pour l'initialisation de l'objet?
new Column<Product>{ ColumnProperty = p => p.Title};
ou mieux encore (mais je pense que je poussais il)
new Column {ColumnProperty = p => p.Title};
avec quelque chose de classe comme ceci:
public class Column<TModel>
{
public Expression<Func<TModel, TProperty>> ColumnProperty { get; set; }
}
L'idée de base derrière cela est que je crée une grille à partir d'un tas d'objets Colonne quelque chose comme ça.
List<Product> productList = GetProductsFromDb();
List<Column> columnList = new List<Column>();
columnList.Add(new Column<Product> {ColumnProperty = p => p.ProductId, Heading = "Product Id"});
columnList.Add(new Column<Product> {ColumnProperty = p => p.Title, Heading = "Title"});
Grid myGrid = new Grid(productList, columnList);
Cela peut ne pas être la façon de le faire tidiest/plus facile mais je suis intéressé à savoir si cela peut être fait que je veux améliorer ma compréhension des expressions et j'aime être en mesure d'avoir des valeurs fortement typées au lieu des littéraux de chaîne c'est tellement plus agréable de travailler avec.
Toutes les pensées, les idées, les divagations seraient grandement appréciés
Vive Rob
Hey idursun - merci cela fonctionne aussi - j'ai utilisé dynamique au lieu de l'objet mais le résultat est le même – Rob