2016-11-24 2 views
0

У меня есть ComboBox настроить как следует:C# значения из другой таблицы в 1 ComboBox

private void SiteChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (comboBoxSites.SelectedIndex == -1) return; 

    Site site = comboBoxSites.SelectedItem.Value as Site; 

    comboBoxDetector.Items.Clear(); 
    if (site != null) 
    { 
     foreach (Detector detector in site.Detectors) 
     {     
       comboBoxDetector.Items.Add(new ComboBoxItem() 
       { 
        Content = string.Format("{0} ({1})", detector.Track.TrackName, detector.DetectorID), 
        Tag = detector 
       }); 
     } 
    } 
    if (comboBoxDetector.Items.Count > 0) 
     comboBoxDetector.SelectedIndex = 0; 

    btnShow_Click(null, null); 
} 

Теперь это показывает мне правильную информацию в ComboBox.
Тем не менее, я хочу добавить 1 дополнительную вещь в строку содержимого.

Я попробовал его с добавлением запроса для начала.
После добавления запроса мой код выглядит следующим образом:

foreach (Detector detector in site.Detectors) 
    { 
     LoadOperation<DetectorType> loadOp = context.Load(context.GetEnabledDetectorTypesQuery(detector.DetectorID)); 

     comboBoxDetector.Items.Add(new ComboBoxItem() 
     { 
      Content = string.Format("{0} ({1})", detector.Track.TrackName, detector.DetectorID), 
      Tag = detector 
     }); 
    } 

Теперь я добавил запрос, и это не дает каких-либо ошибок.
Тем не менее, я хотел бы получить результаты запроса. Таким образом, я добавил этот код:

foreach (Detector detector in site.Detectors) 
    { 
     LoadOperation<DetectorType> loadOp = context.Load(context.GetEnabledDetectorTypesQuery(detector.DetectorID)); 
     DetectorType type = loadOp.Entities; //Added this 

     comboBoxDetector.Items.Add(new ComboBoxItem() 
     { 
      Content = string.Format("{0} ({1}) {2}", detector.Track.TrackName, detector.DetectorID, type.Description), 
      Tag = detector 
     }); 
    } 

Теперь описание - это столбец, который я хочу показать. Однако, DetectorType type = loadOp.Entities; дает значение cannot implicitly convert type

Есть ли способ, чтобы я мог показать значение Description для ComboBox?

+0

Эта ошибка явно говорит о том, что вы не можете неявно преобразовать тип ** loadOp.Entities ** to ** DetectorType **. Если вы абсолютно уверены, что это тот же тип, то вы можете явно преобразовывать типы, используя ** DetectorType type = (DetectorType) loadOp.Entities; ** –

+0

@ m.rogalski Я на 100% уверен, потому что, когда я помещаю его в отдельный метод и назовите его, это покажет мне результаты. Также изменение его на то, что вы сказали, дает мне ту же ошибку. – Mitch

ответ

0

loadOp.Entities будет иметь тип IEnumerable<DetectorType>. Если вы уверены, что будет возвращено только одно лицо (или вас интересует только первый объект), вы можете написать DetectorType type = loadOp.Entities.FirstOrDefault();

 Смежные вопросы

  • Нет связанных вопросов^_^