Добавление объектов в список и одновременное их отображение в списке - PullRequest
0 голосов
/ 05 марта 2019

Итак, у меня есть пустой список и listBox внутри Form1, и я хочу, чтобы пользователь добавил туда объекты "Car". Чтобы выбрать, какую машину он хочет добавить, я сделал другую форму, Form2.

Итак, список Form1 выглядит так:

List<Car> listCars= new List<Car>();

И я также сделал функцию в Form1, поэтому Form2 может передать Form1, какой объект Car будет добавлен:

public void addCar(Car c)
    {
        listCars.Add(c);
        listBox.DataSource = listCars;
        listBox.DisplayMember = "carName";
        listBox.ValueMember = "idCar";
        listBox.Refresh();
    }

В Form2 есть кнопка, которая активирует функцию AddCar Form1, передавая ей выбранный объект Car:

 private void btnAdd_Click (object sender, EventArgs e)
    {
        form1.addCar(selectedCar);
        this.Close();
    }

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

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Это должно работать !!

Используйте следующий код:

    public void addCar(Car c)
{
    listCars.Add(c);

    listBox.DataSource = null;     //Make Datasource null otherwise you have to use IObservable collection

    listBox.DataSource = listCars;
    listBox.DisplayMember = "carName";
    listBox.ValueMember = "idCar";
    listBox.Refresh();                // Not necessary !
}

listBox.DataSource = null;

0 голосов
/ 05 марта 2019

Похоже, ваша Form1 повторно инициализирует listCars. Попробуйте отладить метод addCar и посмотрите, пуст он или нет.

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