2010-04-15 3 views
0

a un problème Ive un Combobox dans un ListView. J'ai une classe appelée "Substrate". Cette classe contient un objet d'une classe appelée "SubstrateType". Je veux montrer les objets de la classe "Substrate" dans une Listview. Chaque propriété du "Substrat" ​​est présentée dans les colonnes de la Listview. Pour les différents "SubstrateType" je veux utiliser une liste déroulante.WPF SelectedItem ne fonctionnera pas pour une Combobox dans un ListView

Dans le XAML je l'ai essayé comme ceci:

<ComboBox Name="CBType" 
      ItemsSource="{Binding ElementName=SettingsSubstrate, Path=TypeList}" 
      SelectedItem="{Binding Path=Substrate.SubstrateType}" 
      DisplayMemberPath="Description"/> 

Dans le code-behind je suis arrivé deux ObservableCollections. Un pour tous les Substrats et un pour tous les SubstrateTypes possibles. La liste déroulante affiche tous SubstrateTypes si vous cliquez dessus. Mais le combobox n'a aucun selecteditem si vous n'en sélectionnez pas un.

http://i44.tinypic.com/2eakxav.png

Merci à l'avance.

Répondre

0

Je ne connais pas votre code exact, mais si vos lignes de ListView afficher des objets de type Substrate, votre chemin de liaison pour le SelectedItem doit être juste SubstrateType parce que le DataContext d'un ListViewItem est déjà réglé sur l'objet Substrate:

SelectedItem="{Binding Path=SubstrateType}" 

En outre, vous devez vous assurer que vos instances SubstrateType sont effectivement considérées comme égales. Si l'instance SubstrateType dans votre objet Substrate n'est pas exactement le même que celui de la propriété TypeList, il ne sera pas sélectionné. Vous pouvez corriger cela en remplaçant la méthode Equals(...) et définir votre comparaison personnalisée pour l'égalité.

Si cela ne fonctionne pas, s'il vous plaît fournir plus de code, par exemple le XAML environnant et le code de Substrate et le code-behind/ViewModel/whatever.

Questions connexes