Pasando el nombre de la propiedad fuertemente escrito como argumento
Tengo una coleccion deIEnumerable<School>
que se pasa a un método de extensión que llena unaDropDownList
. También me gustaría pasar elDataValueField
yDataTextField
como un argumento pero quería que fueran fuertemente tipados.
Básicamente, no quiero pasar unstring
Para elDataValueField
yDataTextField
Argumentos, es propenso a errores.
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();
}
Llamado así ...
myDropDownList.populateDropDownList(states,
school => school.stateCode,
school => school.stateName);
Mi pregunta es, ¿cómo puedo pasar elDataValueField
yDataTextField
fuertemente tipado como un argumento para populateDropDownList?