有没有办法在不指定DataTextFieldandDataValueField属性的情况下绑定到 ASP.NET ListControl ?也许某个类将允许 ListControl 推断哪个属性是文本以及哪个值?
过去每次都必须指定这些属性会导致拼写错误。我认为如果我每次都可以绑定到相同对象类型的集合并完全忽略字段属性会有所帮助。
有没有办法在不指定DataTextFieldandDataValueField属性的情况下绑定到 ASP.NET ListControl ?也许某个类将允许 ListControl 推断哪个属性是文本以及哪个值?
过去每次都必须指定这些属性会导致拼写错误。我认为如果我每次都可以绑定到相同对象类型的集合并完全忽略字段属性会有所帮助。
如果您确实想要这样的控件,则可以扩展ListBox该类以假定默认值。
对分配的数据类型使用DataSource和的反射。GetProperties随心所欲地假设默认值;将第一个属性称为 key( DataValueField),将最后一个属性称为 value( DataTextField)。
不,没有办法让它自动“推断”这一点。
想象一下,您正在绑定到Person. Person 类可能有Id, Name, Address, City, State, Zip, Email,等等。该类ListBox无法读懂程序员的想法并决定他是否真的想分别使用Idand 和Namefor Value,Text因为在许多有效场景中,您可能确实需要显示PhoneandId来代替。
如果您至少运行一次页面,如果您尝试绑定到不存在的属性,您将立即收到错误消息,因此这对任何人来说都不是问题。