J'ai un ComboBox mis en place comme suit:C# valeurs différentes de la table dans 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);
}
Maintenant, ce me montre les informations correctes dans la zone de liste déroulante.
Cependant, je veux ajouter 1 chose supplémentaire à la chaîne de contenu.
Je l'ai essayé en ajoutant la requête pour commencer.
Après avoir ajouté la requête mon code ressemble:
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
});
}
Maintenant, j'ai ajouté la requête, et il ne donne aucune erreur.
Cependant, je voudrais obtenir des résultats de la requête. J'ai donc ajouté ce code:
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
});
}
Maintenant Description est la colonne que je veux montrer. Cependant, DetectorType type = loadOp.Entities;
est de donner une erreur: cannot implicitly convert type
est-il un moyen pour que je puisse montrer la valeur Description
à la ComboBox?
Cette erreur est clairement disant que vous ne pouvez pas implicitement convertir le type de ** loadOp.Entities ** à ** DetectorType **. Si vous êtes absolument sûr que c'est le même type, vous pouvez convertir explicitement les types en utilisant ** DetectorType type = (DetectorType) loadOp.Entities; ** –
@ m.rogalski Je suis sûr à 100% parce que quand je le mets dans un méthode séparée et appelez-le, il me montre les résultats. En changeant aussi à ce que vous avez dit me donne la même erreur. – Mitch