Как мне связать список пользовательских объектов с ComboBox? - PullRequest
6 голосов
/ 06 ноября 2011

Как мне связать список пользовательских объектов со списком? Вот что у меня сейчас:

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

Я, какое «Имя» будет отображаться, но я хочу, чтобы «Идентификатор» был значением, связанным с выбором. Как вы делаете это в winforms?

Вот Грубый объект:

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

Спасибо ...

Ответы [ 3 ]

11 голосов
/ 06 ноября 2011

Вы можете попробовать вот так .....

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

Надеюсь, это поможет вам ...

2 голосов
/ 06 ноября 2011

Не знаете точно, какой у вас _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;
1 голос
/ 06 ноября 2011

Обычно вы можете использовать ComboBoxItem.Tag для такого рода вещей.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...