Как сделать так, чтобы один список представлял данные, основанные на выборе первого? - PullRequest
0 голосов
/ 28 ноября 2018

Я делаю форму окна с 2 списками.Мой план состоит в том, чтобы пользователь имел возможность добавлять / редактировать / удалять из обоих списков.Когда пользователь выбирает опцию из первого списка (выбор названий автомобилей, например, Mazda 3), во втором окне списка будут показаны все данные, которые будут введены на основе данных первого выбора (моя идея состоит в том, чтобы вести сервисные записи длякаждое транспортное средство; в этом поле также будет возможность добавлять / редактировать / удалять).Как мне сделать так, чтобы во втором списке отображались элементы, основанные на выборе первого списка?

Является ли многомерный массив лучшим способом сделать это?Я также планирую иметь окно с изображением, которое будет отображать изображение, которое пользователь может загрузить, и которое будет доступно для просмотра на основе выбора поля списка ВТОРОЕ.

Спасибо

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Мне не совсем понятно, что вы на самом деле пытаетесь сделать, но, насколько я понимаю, у вас есть список автомобилей, и для каждой машины в этом списке есть список сервисных записей?

Если это так, вы можете сделать что-то вроде этого:

public partial class Form1 : Form
{

    List<string> cars = new List<string>()
    {
        "Mazda 3",
        "Mazda 6",
        "VW Polo",
        "VW Golf"
    };

    List<string> Mazda3 = new List<string>()
    {
        "12-04-2008",
        "14-03-2010",
        "20-05-2012",

    };

    List<string> Mazda6 = new List<string>()
    {
        "12-08-2012",
        "14-07-2014",
        "03-09-2016",
    };

    List<string> VWPolo = new List<string>()
    {
        "Some Date",
        "Some Date",
        "Some Date",
    };

    List<string> VWGolf = new List<string>()
    {
        "Some Date",
        "Some Date",
        "Some Date",
    };

    List<List<string>> ServiceLists = new List<List<string>>();


    public Form1()
    {
        InitializeComponent();

        ServiceLists.Add(Mazda3);
        ServiceLists.Add(Mazda6);
        ServiceLists.Add(VWPolo);
        ServiceLists.Add(VWGolf);

        Cars_listBox.DataSource = cars;
    }

    private void Cars_listBox_SelectedIndexChanged(object sender, EventArgs e)
    {
        ServiceRecords_listBox.DataSource = ServiceLists[Cars_listBox.SelectedIndex];
    }
}

В этом примере списки создаются в конструкторе

0 голосов
/ 28 ноября 2018

Не могли бы вы предоставить код того, что у вас есть?Не зная этого, я бы сказал, что вы можете вызвать функцию, вызванную изменением в первом списке

`private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
 {
     if(listBox1.Text == "mazda 3")
         //do something here with listbox2
 }` 
...