C# 在指定DataTextField和DataValueField之后,为什么';我的下拉列表是否显示列表中的元素?

C# 在指定DataTextField和DataValueField之后,为什么';我的下拉列表是否显示列表中的元素?,c#,asp.net,C#,Asp.net,我试图填充下拉列表,但是数据文本字段和数据值字段有一些问题。下拉列表不显示列表中的元素 private void llenarProfesionales() { List<Profesional> profesionales = daoProfesionales.getAll(); DropDownProfesioanles.DataSource = profesionales; DropDownProfesioanles.DataTextField = "n

我试图填充
下拉列表
,但是
数据文本字段
数据值字段
有一些问题。下拉列表不显示列表中的元素

private void llenarProfesionales()
{
    List<Profesional> profesionales = daoProfesionales.getAll();
    DropDownProfesioanles.DataSource = profesionales;
    DropDownProfesioanles.DataTextField = "nombre";
    DropDownProfesioanles.DataValueField = "id";
    DropDownProfesioanles.DataBind();
}
这是一节课
usuario

public class Profesional: Usuario
{
    long idProfesional;
    List<Servicio> listaServicios;
    Profesion profesion;
    Usuario usuar;

    Decimal comision;

    public Decimal Comision
    {
        get { return comision; }
        set { comision = value; }
    }


    public Profesional()
    { 
    }

    public long IdProfesional
    {
        get { return idProfesional; }
        set { idProfesional = value; }
    }

    public List<Servicio> ListaServicios
    {
        get { return listaServicios; }
        set { listaServicios = value; }
    }

    public Profesion Profesion
    {
        get { return profesion; }
        set { profesion = value; }
    }

    public Usuario Usuar
    {
        get { return usuar; }
        set { usuar = value; }
    }
}
public class Usuario
{
    private long id;

    private String nombre;
    private String apellido;
    private String telefono;
    private String celular;
    private Boolean activo;
    private String user;
    private String password;
    public Usuario()
    {

    }

    public Usuario(string nombre, string apellido, string telefono , string celular, string user, string password ,long id, bool activo) {
        this.Id = id;
        this.Nombre = nombre;
        this.Apellido = apellido;
        this.Telefono = telefono;
        this.Celular = celular;
        this.User = user;
        this.password = password;
        this.activo = activo;
    }

    public long Id
    {
        get { return id; }
        set { id = value; }
    }

    public String Nombre
    {
        get { return nombre; }
        set { nombre = value; }
    }

    public String Apellido
    {
        get { return apellido; }
        set { apellido = value; }
    }

    public String Telefono
    {
        get { return telefono; }
        set { telefono = value; }
    }
    public String Celular
    {
        get { return celular; }
        set { celular = value; }
    }

    public String Password
    {
        get { return password; }
        set { password = value; }
    }
    public Boolean Activo
    {
        get { return activo; }
        set { activo = value; }
    }
    public String User
    {
        get { return user; }
        set { user = value; }
    }
}

指定公共属性,而不是专用字段:

DropDownProfesioanles.DataTextField = "Nombre";
DropDownProfesioanles.DataValueField = "Id";
此外,没有理由这样定义类,即定义一个公共的
Usuario
属性,但也扩展了
Usuario
类(因此您可以访问它的所有属性,但它们不会有任何值,因为您使用的是单独的“Usuar”变量)

如果要使用公共属性,则不要扩展其他类:

public class Profesional
{
    ...
    Usuario usuar;

    ...
    public Usuario Usuar
    {
        get { return usuar; }
        set { usuar = value; }
    }
}

谢谢你的回答,我解决了将此代码添加到专业

        public String Nombre
    {
        get { return usuar.Nombre; }
        set { usuar.Nombre = value; }
    }

我没有收到任何错误,但我下拉列表中的所有项目都像空字符串。属性名称属于超类。可能是问题吗?
        public String Nombre
    {
        get { return usuar.Nombre; }
        set { usuar.Nombre = value; }
    }