Использование Linq to Entities для наложения comboBox в приложении winforms, один comboBox зависит от другого - PullRequest
0 голосов
/ 19 сентября 2011

Вот мой код;

        comboBoxAdminVisit.DataSource = be.Events;
        comboBoxAdminVisit.DisplayMember = "EventName";


        var fff = (from cc in be.Visitors
                  select cc.Attending).FirstOrDefault();

        var ggg = (from xx in be.Events
                   where xx.Id == fff
                   select xx.Id).FirstOrDefault();

        if (fff == ggg)
        {
            foreach (var name in comboBoxAdminName.Items)
            {
                comboBoxAdminName.Items.Add(name);
            }

cc.Attending - это внешний ключ, он хранит первичный ключ таблицы событий.Я хочу выбрать событие из первого поля со списком, а второе заполнить посетителями мероприятия.Заранее спасибо!

Events       Visitors
------       --------
Id           Id
Attendee(FK) Name
EventName    Company
EventStart   Car Reg
EventEnd     Visiting

1 Ответ

2 голосов
/ 19 сентября 2011

Я не знаю точную структуру ваших сущностей, но вот идея, как это реализовать:

private void Form1_Load(object sender, EventArgs e)
{
    comboBoxAdminVisit.DataSource = be.Events;
    comboBoxAdminVisit.DisplayMember = "EventName";
}

private void comboBoxAdminVisit_SelectedIndexChanged(object sender, EventArgs e)
{
    if (comboBoxAdminVisit.SelectedItem != null)
    {
        Event selectedEvent = (Event)comboBoxAdminVisit.SelectedItem;

        var visitors = (from cc in be.Visitors
                        where cc.Attending.Events.Contains(x => x.EnventId = selectedEvent.Id)
                        select cc);

        comboBoxAdminName.DataSource = visitors;
        comboBoxAdminName.DisplayMember = "Name";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...