C# 如何将自定义对象列表绑定到ComboBox?

C# 如何将自定义对象列表绑定到ComboBox?,c#,winforms,C#,Winforms,如何将自定义对象列表绑定到组合框?这就是我目前拥有的: this.classCmbo.DataSource = _viewModel.Coarses; this.classCmbo.DisplayMember = "Name"; this.classCmbo.ValueMember = "Id"; 我知道要显示什么“名称”,但我希望“Id”是与选择相关联的值。如何在winforms中实现这一点 以下是粗略的obj: pu

如何将自定义对象列表绑定到组合框?这就是我目前拥有的:

            this.classCmbo.DataSource = _viewModel.Coarses;
            this.classCmbo.DisplayMember = "Name";
            this.classCmbo.ValueMember = "Id";
我知道要显示什么“名称”,但我希望“Id”是与选择相关联的值。如何在winforms中实现这一点

以下是粗略的obj:

 public class Coarse
    {
        public virtual int Id { get; private set; }
        public virtual string Name { get;  set; }
    }

谢谢…

您通常可以使用ComboBoxItem.Tag来完成这类工作


不确定您的
\u viewModel.gross
到底是什么,但试试这个

this.classCmbo.DataSource = _viewModel.Coarses;
this.classCmbo.DisplayMember = _viewModel.Coarses.Name;
this.classCmbo.ValueMember = _viewModel.Coarses.Id;
或者只是

this.classCmbo.DataSource = _viewModel.Coarses;
this.classCmbo.DisplayMember = Coarses.Name;
this.classCmbo.ValueMember = Coarses.Id;

你可以这样试试

public class Country
{
    public string Name { get; set; }
    public IList<City> Cities { get; set; }
    public Country(string _name)
    {
        Cities = new List<City>();
        Name = _name;
    }
}

List<Country> countries = new List<Country> { new Country("UK"), 
                                     new Country("Australia"), 
                                     new Country("France") };

bindingSource1.DataSource = countries;

comboBox1.DataSource = bindingSource1.DataSource;

comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Name";
公共类国家
{
公共字符串名称{get;set;}
公共IList城市{get;set;}
公共国家(字符串_名称)
{
城市=新列表();
名称=_名称;
}
}
名单国家=新名单{新国家(“英国”),
新国家(“澳大利亚”),
新国家(“法国”);
bindingSource1.DataSource=国家/地区;
comboBox1.DataSource=bindingSource1.DataSource;
comboBox1.DisplayMember=“Name”;
comboBox1.ValueMember=“Name”;

我希望它能帮助您……

谢谢,但是_viewModel.gross是一个粗糙的集合。。ie IList因此_viewModel.roughes.Name没有意义“roughes”是一个类型“rough”的集合,您是作为
roughes.Name
还是
classCmbo.DataSource.Name
尝试的?很抱歉,我没有遇到任何问题,但我只是在WPF中完成的,因此不确定它如何转换回WinForms:(谢谢..我应该提到这是一个WinForm应用程序,不是WPFOh,我看到了,我错过了,对不起D:winforms中的组合框只使用对象集合作为其项。它们可以是任何对象。该项的组合框中显示的文本是ToString()的任何内容返回。我要做的是编写一个类,其中包含存储为属性(或使用已编写的属性)的所有信息,并包含要在ComboBox中显示的文本属性。然后只需重写ToString()方法返回文本属性的内容。然后可以使用myComboBox.Items.add(myCustomObject)添加它;