Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据文本字段来自字段';s属性_C#_Asp.net_Datatextfield - Fatal编程技术网

C# 数据文本字段来自字段';s属性

C# 数据文本字段来自字段';s属性,c#,asp.net,datatextfield,C#,Asp.net,Datatextfield,我有类似的课程 public class A { public string name; } public class B { public int Id; public A obj; } 然后,我有ASP.NETWebForms应用程序和带有ListBox控件的页面 我想将List设置为ListBox的数据源 List<B> list = ...; //fill data lbx.DataSource = list; lbx.DataValueField

我有类似的课程

public class A
{
    public string name;
}

public class B
{
    public int Id;
    public A obj;
}
然后,我有ASP.NETWebForms应用程序和带有ListBox控件的页面

我想将
List
设置为
ListBox
的数据源

List<B> list = ...; //fill data
lbx.DataSource = list;
lbx.DataValueField = "Id";
lbx.DataTextField = A.name; //how can I do it?
lbx.DataBind();
List=//填充数据
lbx.DataSource=列表;
lbx.DataValueField=“Id”;
lbx.DataTextField=A.name//我怎么做?
lbx.DataBind();
所以,我的问题是:如何将DataTextField链接到列表中对象的属性


谢谢大家!

您可以在B类中为名称创建属性。比如说

public class B
{
public int Id;
public A obj;
public string Name{ get {return obj.name;}}
}
把它当作
lbx.DataTextField=“Name”

不确定您使用的listbox控件是否支持嵌套属性(我知道有第三方控件支持嵌套属性),如下所示:

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"

DataTextField
接受字符串。是的,我知道。但是有没有办法解决我的问题呢?如果可能的话,试试B继承自A(B:A)