2010-10-05 5 views
0

У меня есть массив объектов с созданными изображениями (Object.Image), я хочу показывать изображения в combobox.Как отобразить массив изображений в Silverlight ComboBox?

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

Комбобокс показывает изображение.ToString(), а не само изображение, как его исправить.

+0

Каков фактический тип свойства 'Image'? – AnthonyWJones

+0

Управление изображением, silverlight – INs

ответ

3

Вам необходимо установить ItemTemplate для выпадающего списка. что-то вроде этого .... (это для массива путей к изображениям, а не фактические изображения)

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

here является хорошим примером Наримера в SilverLight

+0

Я изменил изображение на BitmapSource, но ваш ответ был самым близким, поэтому я его принимаю. – INs

0

Реализации по умолчанию для ComboBox заключается в том, чтобы использовать ItemSource в качестве источника списка элементов, а DisplayMemberPath - как имя свойства, используемого для значения TextBlock.Text. Поэтому он смотрит на ваше свойство «Изображение» и делает .ToString(), чтобы преобразовать его в TextBlocks в списке.

Вместо этого вам необходимо реализовать шаблон управления ComboBoxItem, чтобы описать элементы в каждом отображаемом элементе (текст, изображения, что угодно). Эти элементы управления сами будут содержать привязки к свойствам ваших объектов. например:

<Image Source={Binding Image}/> 

Как Муад'Диб указал (30 секунд назад), то изображение должна быть строкой, которая является путем изображения, а не реальный объект изображения.

Смежные вопросы