Вы можете использовать следующий класс, который содержит метод, использующий дерево выражений в качестве аргумента для определения имени члена на основе лямбда-выражения:
public class MemberHelper<T> where T : class
{
public string GetName<U>(Expression<Func<T, U>> expression)
{
MemberExpression memberExpression = expression.Body as MemberExpression;
if(memberExpression != null)
return memberExpression.Member.Name;
throw new InvalidOperationException("Member expression expected");
}
}
Вы можете использовать метод следующим образом:
MemberHelper<MyDataRow> memberHelper = new MemberHelper<MyDataRow>();
dgv.Columns[memberHelper.GetName(d => d.FirstName)].Width = 80;