Przekazywanie silnie wpisanej nazwy właściwości jako argumentu
Mam kolekcjęIEnumerable<School>
który jest przekazywany do metody rozszerzenia, która wypełnia aDropDownList
. Chciałbym również przekazaćDataValueField
iDataTextField
jako argument, ale chciałem, żeby zostały mocno wpisane.
Zasadniczo nie chcę zdaćstring
dlaDataValueField
iDataTextField
argumenty, jest podatny na błędy.
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();
}
Nazywany tak ...
myDropDownList.populateDropDownList(states,
school => school.stateCode,
school => school.stateName);
Moje pytanie brzmi, jak mogę przekazaćDataValueField
iDataTextField
silnie wpisany jako argument do populateDropDownList?