Фильтрующий выпадающий список по значению члена - PullRequest
1 голос
/ 06 октября 2009

У меня есть два списка, которые я загружаю при запуске моего приложения. Первый загружает полный набор данных из базы данных, второй независимо загружает набор связанных данных из файла.
Каждый список загружается в BindingSource и устанавливается как DataSource для их соответствующего комбинированного списка. Данные загружаются просто отлично.
Проблема в том, что мне нужно, чтобы второй comboBox отображал только те элементы его списка, которые соответствуют выбранному значению первого списка. Я попытался установить для элементов значения ссылочный бит данных, но не могу понять, как заставить comboBoxSettings показывать только те элементы, EventID которых соответствует EventID выбранного элемента из comboBox EventList.

         //Event List comboBox
        comboBoxEventList.DataSource = _eventSimPresenter.BindingSourceEventList;
        comboBoxEventList.DisplayMember = "DisplayName";
        comboBoxSettings.ValueMember = "EventID";

        //Settings combobox
        comboBoxSettings.DataSource = _eventSimPresenter.BindingSourceUserSettings;
        if (_eventSimPresenter.BindingSourceUserSettings.Count > 0)
        {
            comboBoxSettings.DisplayMember = "EventName";
            comboBoxSettings.ValueMember = "EventID";
        }

спасибо!

1 Ответ

2 голосов
/ 06 октября 2009

Вы можете указать метод в _ eventSimPresenter, который возвращает BindingSourceUserSettings на eventId. Когда 1-й комбинированный список изменяется, возьмите выбранный идентификатор события и обновите 2-й источник данных comboBox:

    ...
    comboBoxSettings.DataSource =
              _eventSimPresenter.GetBindingSourceUserSettings(selectedEventId)
    if (_eventSimPresenter.BindingSourceUserSettings.Count > 0)
    {
        comboBoxSettings.DisplayMember = "EventName";
        comboBoxSettings.ValueMember = "EventID";
    }

Другими словами, фильтрация должна применяться к источнику данных, так как это невозможно сделать через comboBox.

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