В событии загрузки формы может обрабатываться только одна привязка данных Combobox - PullRequest
0 голосов
/ 22 марта 2012

Я создал linq, и в результате я получил список типов элементов, и я попытался привязать список к списку, но очень странно, что после того, как я установил DisplayMember и ValueMember для первого списка,тогда событие загрузки, похоже, возвращается и никогда не выполняет остальные коды

private void AddOpenOrderForm_Load(object sender, EventArgs e)
{
    using (context = new MRP_DBEntities())
    {

         var query1 = (from i in context.LookUPs select i.itemType).Distinct();
         itemType1CB.DataSource = query1.ToList();
         itemType1CB.DisplayMember = "itemType";
         itemType1CB.ValueMember = "itemType";

         MessageBox.Show("The program will not reach the follow codes");

         itemType2CB.DataSource = query1.ToList();
         itemType2CB.DisplayMember = "itemType";
         itemType2CB.ValueMember = "itemType";
      }


}

1 Ответ

2 голосов
/ 22 марта 2012

Я предполагаю, что вы получаете исключение, которое просто не видите.Вы уже выбираете член itemType здесь:

var query1 = (from i in context.LookUPs select i.itemType).Distinct();

... но затем вы пытаетесь найти itemType член каждого значения здесь:

itemType1CB.DisplayMember = "itemType";
itemType1CB.ValueMember = "itemType";

Я подозреваю, что вы должны просто оставить DisplayMember и ValueMember как "", чтобы вы отображали сами объекты.

Я бы также предложил вызвать ToList один раз , и не использовать выражение запроса, где оно не уменьшает помехи:

 var list = context.LookUPs.Select(i => i.itemType).Distinct().ToList();
 itemType1CB.DataSource = list;
 itemType2CB.DataSource = list;

 // Unless you've set the display/value members elsewhere, they'll default to ""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...