Combobox displaymember问题,让我发疯

use*_*224 3 c# combobox winforms

很抱歉打扰您,但是C#Winforms出现了问题,因为我一直在寻找相同的问题,所以我找到了一些解决方案,但它们对我不起作用。好,我有一个包含对象的绑定列表

BindingList<objects.usuario> usuarios = new BindingList<objects.usuario>();
Run Code Online (Sandbox Code Playgroud)

这些对象有一些公共字符串和int变量,一个字符串和一个int是我需要的变量。

public string dataNombreCompleto;
public int dataIdUsuario;
Run Code Online (Sandbox Code Playgroud)

因此,一旦列表“ usuarios”中包含一些对象,我就可以执行此操作

            cbAdministrativos.DisplayMember = "dataNombre";
            cbAdministrativos.ValueMember = "dataIdUsuario";
            cbAdministrativos.DataSource = usuarios;
Run Code Online (Sandbox Code Playgroud)

事实是,它不起作用,组合框(cbAdministrativos)仍显示该对象。

当我通过调试器时,在断点之后,组合框会随着代码的进行设置显示成员,值成员和数据源,但是,在下一条指令(方法的结尾)中,我意识到显示成员神奇地,改为字符串“ dataNombre”。

任何的想法?

在此先感谢您,并为英语不好对不起。

对不起,谢谢大家!在绝望中,我尝试了对象中的不同字段,但我没有意识到我为问题中的示例代码留下了“ dataNombre”而不是“ dataNombreCompleto”,这是正确的,那是我原始代码中的原始DisplayMember ,但是问题仍然存在:(

the*_*000 7

它应该是:

cbAdministrativos.DisplayMember = "dataNombreCompleto";
Run Code Online (Sandbox Code Playgroud)

另外,请考虑使用“公共属性”而不是“公共字段”。

公共领域是邪恶的

更改此:

public string dataNombreCompleto;
public int dataIdUsuario;
Run Code Online (Sandbox Code Playgroud)

对此:

public string dataNombreCompleto { get; set; }
public int dataIdUsuario { get; set; }
Run Code Online (Sandbox Code Playgroud)