我上课类似
public class A
{
public string name;
}
public class B
{
public int Id;
public A obj;
}
然后,我有ASP.NET WebForms应用程序和带有ListBox控件的页面。
我想将List<B>
设置为ListBox
的数据源。
List<B> list = ...; //fill data
lbx.DataSource = list;
lbx.DataValueField = "Id";
lbx.DataTextField = A.name; //how can I do it?
lbx.DataBind();
所以,我的问题是:如何将DataTextField链接到列表中对象的属性?
谢谢!
答案 0 :(得分:1)
您可以在B类中为Name创建一个属性。例如
public class B
{
public int Id;
public A obj;
public string Name{ get {return obj.name;}}
}
用它作为
lbx.DataTextField = "Name";
答案 1 :(得分:1)
不确定您使用的列表框控件是否支持嵌套属性(我知道某些第三方控件会这样做),如下所示:
lbx.DataTextField = "obj.name"
如果它不支持,则将A的嵌套属性包装到B的另一个只读属性中:
public class B
{
public int Id;
public A obj;
public string NameOfA
{
Get{return obj.name;}
}
}
然后:
lbx.DataTextField = "NameOfA"