我有一个集合IEnumerable<School>
被传递给一个扩展方法,该方法填充一个DropDownList
. 我也想传递
DataValueField
andDataTextField
作为参数,但我希望它们是强类型的。
基本上,我不想string
为DataValueField
andDataTextField
参数传递 a,这很容易出错。
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?