2009-08-13 2 views
1

Y at-il un moyen de définir la valeur initiale d'une base de données ComboBox en XAML?Initialiser une zone de liste déroulante WPF dans XAML?

Voici mon ComboBox:

<ComboBox 
    IsSynchronizedWithCurrentItem="True" 
    ItemsSource="{Binding Source={StaticResource NHibernateTypes}}" 
    SelectedValue="{Binding ElementName=IdentifierPoperty, Path=PropertyType}" 
    HorizontalAlignment="Stretch" 
    VerticalAlignment="Top" 
    Grid.Row="1" 
    Grid.Column="1" 
    Margin="0,5,10,0"/> 

Le ItemsSource est un ObjectDataProvider qui obtient des valeurs d'un ENUM. Je voudrais avoir la première valeur dans l'énumération affichée dans la zone de liste déroulante par défaut. J'ai essayé de régler SelectedIndex="0", mais rien ne s'est passé.

Voici la chose vraiment étrange. J'ai une demi-douzaine de ces combos dans ma fenêtre, toutes déclarées de la même manière que ci-dessus. Environ la moitié d'entre eux montrent la première valeur dans leur énumération par défaut, mais les autres sont vides. J'ai vérifié que toutes les liaisons fonctionnent - chaque zone de liste déroulante affiche la liste déroulante correcte lorsque je clique dessus.

Existe-t-il un moyen de définir explicitement une valeur d'index par défaut pour ces zones de liste déroulante? Y a-t-il une raison pour que certaines listes déroulantes affichent une valeur par défaut alors que d'autres ne le font pas? Merci de votre aide.

David Veeneman
Systems Prospective

Répondre

1

trouvé ma réponse - j'utilisais le fournisseur de données d'objets de manière incorrecte. J'avais créé un ODP pour chaque énumération que j'avais besoin de lier à une zone de liste déroulante, avec le résultat que plusieurs zones de liste déroulante étaient liées au même ODP. C'est ce qui causait le problème. J'ai changé mes ODP pour fournir un ODP pour chaque zone de liste déroulante (certains ODP ont lu la même énumération) et cela a résolu le problème. Mes boîtes de combo s'initialisent maintenant correctement.