MyDropDownList.DataSource = myList;
MyDropDownList.DataTextField="Name";
MyDropDownList.DataValueField="ID";
MyDropDownList.DataBind();
这就是我如何将对象列表绑定到下拉列表。我的问题是我如何设置DataTextField对象的ToString()方法。
ToString()将返回ID + " " + Name
我试过了
MyDropDownList.DataTextField="ToString()";
和
MyDropDownList.DataTextField="ToString";
但是,DataTextField需要一个属性名,而不是一个方法名。
如果有的话,我该怎么做呢?
最正确的选择是为列表中的对象添加属性。它可以通过表达式来定义。例句:
public class MyListItem
{
//some code ID, Name properties and so on
public string Description => ToString();
public override string ToString()
{
return $"{ID} {Name}";
}
}
如果这是不可能的-您可以创建一个继承对象或包装对象,它们提供对如何字段的ToString
方法的访问。
你可以在下拉列表中设置这个属性,比如:MyDropDownList.DataTextField = "Description";
还有第三种选择——您可以创建匿名对象而不是对象包装器