Ü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?