2010-10-05 5 views
0

J'ai un tableau d'objets avec des images créées (Object.Image), je veux montrer des images en combobox.Comment afficher un tableau d'images dans Silverlight ComboBox?

<ComboBox x:Name="typeSelection" ItemsSource="..." DisplayMemberPath="Image"></ComboBox> 

Combobox montre Image.ToString(), pas l'image elle-même, comment y remédier.

+0

Quel est le type réel de la propriété 'Image'? – AnthonyWJones

+0

Contrôle de l'image, silverlight – INs

Répondre

3

Vous devez définir ItemTemplate pour la zone de liste déroulante. quelque chose comme ça .... (ce qui est un tableau de chemins aux images, pas des images réelles)

<ComboBox> 
    <ComboBox.ItemTemplate> 
     <DataTemplate> 
      <Image Source="{Binding MySourcePath}"/> 
     </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox> 

here est un bel exemple de comboboxes dans silverlight

+0

J'ai changé Image en BitmapSource, mais votre réponse était la plus proche, donc je vais l'accepter. – INs

0

L'implémentation par défaut d'un ComboBox est d'utiliser ItemSource comme source d'une liste d'éléments et DisplayMemberPath comme nom d'une propriété à utiliser pour une valeur TextBlock.Text. Par conséquent, il regarde votre propriété "Image" et fait un .ToString() pour le convertir pour les TextBlocks dans la liste. À la place, vous devez implémenter un modèle de contrôle ComboBoxItem pour décrire les éléments de chaque élément affiché (texte, images, etc.). Ces contrôles contiendront eux-mêmes des liaisons avec les propriétés de vos objets. par exemple:

<Image Source={Binding Image}/> 

Comme Muad'Dib a souligné (30 secondes plus tôt), l'image doit être une chaîne qui est le chemin de l'image, et non pas un objet image réelle.

Questions connexes