Как отобразить массив изображений в Silverlight ComboBox? - PullRequest
0 голосов
/ 05 октября 2010

У меня есть массив объектов с созданными изображениями (Object.Image), я хочу показать изображения в выпадающем списке.

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

В выпадающем списке отображается Image.ToString (), а не само изображение, как это исправить.

Ответы [ 2 ]

3 голосов
/ 05 октября 2010

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

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

здесь - хороший пример комбинированных ящиков в серебристом свете

0 голосов
/ 05 октября 2010

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

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

<Image Source={Binding Image}/>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...