Передача строго типизированного имени свойства в качестве аргумента
У меня есть коллекцияIEnumerable<School>
который передается в метод расширения, который заполняетDropDownList
, Я также хотел бы передатьDataValueField
а такжеDataTextField
в качестве аргумента, но я хотел, чтобы они были строго напечатаны.
В принципе, я не хочу передаватьstring
дляDataValueField
а такжеDataTextField
аргументы, это склонно к ошибкам.
public static void populateDropDownList<T>(this DropDownList source,
IEnumerable<T> dataSource,
Func<T, string> dataValueField,
Func<T, string> dataTextField) {
source.DataValueField = dataValueField; //<-- this is wrong
source.DataTextField = dataTextField; //<-- this is wrong
source.DataSource = dataSource;
source.DataBind();
}
Называется так ...
myDropDownList.populateDropDownList(states,
school => school.stateCode,
school => school.stateName);
Мой вопрос, как я могу передатьDataValueField
а такжеDataTextField
строго типизирован как аргумент для populateDropDownList?