绑定自定义对象列表到组合框(DisplayMember无效)

3

我正在尝试将一个自定义类的对象列表绑定到 Combobox 控件上作为数据源。绑定操作成功,但无法设置 DisplayMember 属性。

我的类定义中,有一个自定义类 "Sett_Colection",它保存另一个自定义类 "Sett" 的列表。

public class Sett
{
    public string nameOfSett;
    public Sett(){
        ...
    }
}

public class Sett_Colection
{
    public List<Sett> listOfSetts;
    public Sett_Colection(){
        ...
    }
}

我的表单中的代码大概是这样的:
public partial class Form1: Form
{
    Sett_Colection collectionOfSetts;

    public Form1()
    {
        // Here I add Sett instances into collectionOfSetts
        // So collectionOfSetts.listOfSetts is not empty

        combobox1.DataSource = collectionOfSetts.listOfSetts;
        cmb_ayar.DisplayMember = "nameOfSett";
    }
}

当我这样做时,数据源已成功分配。但显示成员未设置为"nameOfSett"。项目名称显示为"Namespace.Sett"。
我在网上找到了很多示例代码,但它们都不起作用。我认为我的情况有点不同。

你实际上看到了什么行为?我们不知道这里有什么问题。你确认listOfSetts非空了吗? - cdkMoose
谢谢 @cdkMoose。listOfSetts 不是空的。LarsTech 的建议解决了问题。 - Decoded
1个回答

4

您需要将其作为属性:

public string nameOfSett {get; set;}

运行得非常完美。非常感谢。 - Decoded
非常感谢!在我的情况下,属性是“internal”,我将它们改为“public”,问题就解决了。 - Tahirhan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接