ComboBox не загружает пользователей - PullRequest
1 голос
/ 29 октября 2010
private void LoadUsersToComboBox()
{
    comboBox1.DataSource = null;
    comboBox1.DataSource = peopleRepo.FindAllPeople(); /*Returns IQueryable<People>*/
    comboBox1.DisplayMember = "Name";
    comboBox1.ValueMember = "ID";            
}

private void button2_Click(object sender, EventArgs e)
{            
    CreateNewPerson();            
    LoadUsersToComboBox();
}

private void CreateNewPerson()
{
    if (textBox2.Text != String.Empty)
    {
        Person user = new Person()
        {
            Name = textBox2.Text
        };

        peopleRepo.Add(user);
        peopleRepo.Save();
    }            
}

Я бы хотел, чтобы в выпадающем списке отображался список пользователей после каждого сохранения. Итак, кто-то создает нового пользователя, и он должен отображаться в выпадающем списке сразу после этого. Это не работает, новые пользователи не добавляются, похоже, работает только начальная загрузка.

1 Ответ

1 голос
/ 29 октября 2010

Сложная привязка данных принимает в качестве источника данных либо IList, либо IListSource.

private void LoadUsersToComboBox()
{
    // comboBox1.DataSource = null; // No need for this

    comboBox1.DataSource = peopleRepo.FindAllPeople().ToList(); /*Returns IQueryable<People>*/
}

Не переназначайте DisplayMember и ValueMember при каждом обновлении, только один раз,

public Form1()
{
    InitializeComponent();

    comboBox1.DisplayMember = "Name";
    comboBox1.ValueMember = "ID";
    LoadUsersToComboBox()
}

Удачи!

...