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

时间:2011-11-05 23:36:46

标签: c# winforms

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

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

我是什么"姓名"要显示但我想要" Id"是与选择相关的值。你怎么在winforms中做到这一点?

这是Coarse obj:

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

...谢谢

3 个答案:

答案 0 :(得分:11)

你可以这样试试......

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";

我希望它会帮助你...

答案 1 :(得分:2)

确定您的_viewModel.Coarses究竟是什么,但试试这个?

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;

答案 2 :(得分:1)

您通常可以将ComboBoxItem.Tag用于此类事情。

http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.tag.aspx

相关问题