Retirer mes cheveux. J'ai une table 'Belts' avec les colonnes 'BeltID' et 'BeltColor'. J'ai une classe générée Linq to SQL, et j'essaie de remplir une combobox et cela ne fonctionne que partiellement. Voici ce que j'ai jusqu'à présent:WPF, Linq to SQL, C#> Comment remplir et enregistrer une zone de liste déroulante
private void Window_Loaded(object sender, RoutedEventArgs e)
{
using (DojoDataClassesDataContext conn = new DojoDataClassesDataContext())
{
var belts = (from b in conn.Belts
select b);
cboBelt.DisplayMemberPath = "BeltColor";
cboBelt.SelectedValuePath = "BeltID";
cboBelt.ItemsSource = belts;
}
}
Et le XAML:
<ComboBox Margin="101,0,57,97" Name="cboBelt" DisplayMemberPath="{Binding Path = Belt.BeltColor}" SelectedValuePath="{Binding Path = Belt.BeltID}" Height="23" VerticalAlignment="Bottom" />
Et bien sûr, il y a toute autogenerated Linq pour farcir SQL dans DojoDataClassesDataContext que je faisais les données de zone de texte contraignant sans aucun problème (enfin, mis à part le temps de comprendre tout ça). À l'heure actuelle, la zone de liste déroulante tire le texte: TheNameOfMyProject.Belt comme toutes les options de liste déroulante, mais une fois sélectionné, il montre la bonne couleur de la ceinture en fonction de l'ordre.
Qu'est-ce que vous voyez dans la sortie fenêtre lorsque ce code s'exécute? Y a-t-il des messages d'échec de liaison? –
@Robert: aucun échec de liaison. @Anthony: L'ajout de .ToList() à la fin de la requête provoque l'impression de la requête dans la zone de liste déroulante. Étrange, je sais. Changer l'affichage ne le fait pas. @Jake: Sur le point d'essayer votre solution. – mdvaldosta
Aucun dé Jake, je reçois des erreurs de type d'espace de noms dans le xaml et je ne peux pas le comprendre de cette façon. J'espère qu'il y avait un moyen de modifier ma requête et/ou le code xaml pour le faire fonctionner comme le reste de mon projet est codé dans un style similaire de toute façon. Si je suis obtuse, dis-moi. Je continue d'apprendre. – mdvaldosta