Мое выражение не очень хорошо, и я хотел бы улучшить их, поэтому мне интересно, может ли кто-нибудь объяснить мне, возможно ли создать свойство в классе, которому может быть присвоено значение во время создания экземпляра вот так:Выражение <Func <TModel, TProperty >> как свойство инициализации объекта?
new Column<Product>{ ColumnProperty = p => p.Title};
или еще лучше (но я думаю, что я толкая его)
new Column {ColumnProperty = p => p.Title};
с классом что-то вроде этого:
public class Column<TModel>
{
public Expression<Func<TModel, TProperty>> ColumnProperty { get; set; }
}
Основная идея заключается в том, что я создаю Grid из группы объектов Column примерно так.
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);
Это не может быть tidiest/Самым простым способом сделать это, но я интересно узнать, может ли это быть сделано, как я хочу, чтобы улучшить свое понимание выражений, и я люблю быть в состоянии иметь строго типизированные значения вместо из строковых литералов, с которыми лучше работать.
Любые мысли, идеи, бред был бы весьма признателен
Приветствия Роб
Hey idursun - спасибо, что это тоже работает - я использовал динамический объект вместо объекта, но результат тот же – Rob