Передача строго типизированного имени свойства в качестве аргумента

У меня есть коллекция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?

Ответы на вопрос(3)

Ваш ответ на вопрос