Übergabe eines stark typisierten Eigenschaftsnamens als Argument

Ich habe eine Sammlung vonIEnumerable<School> Das wird an eine Erweiterungsmethode übergeben, die aDropDownList. Ich würde auch gerne dieDataValueField undDataTextField Als Argument wollte ich aber, dass sie stark getippt sind.

Grundsätzlich möchte ich keinstring für dieDataValueField undDataTextField Argumente, es ist fehleranfällig.

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();
}

Genannt wie so ...

myDropDownList.populateDropDownList(states,
        school => school.stateCode,
        school => school.stateName);

Meine Frage ist, wie kann ich das bestehen?DataValueField undDataTextField stark als Argument für populateDropDownList eingegeben?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage