如何在Silverlight ComboBox中显示图像数组?

时间:2010-10-05 14:47:12

标签: silverlight silverlight-4.0 combobox

我有创建图像的对象数组(Object.Image),我想在组合框中显示图像。

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

Combobox显示Image.ToString(),而不是图像本身,如何修复它。

2 个答案:

答案 0 :(得分:3)

您需要为组合框设置ItemTemplate。这样的事...... (这是针对图像的路径数组,而不是实际图像)

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

here是silverlight中组合框的一个很好的例子

答案 1 :(得分:0)

ComboBox的默认实现是使用ItemSource作为项列表的源,并使用DisplayMemberPath作为用于TextBlock.Text值的属性的名称。因此,它会查看您的“Image”属性并执行.ToString()将其转换为列表中的TextBlock。

相反,您需要实现ComboBoxItem控件模板,以描述每个显示项目中的元素(文本,图像等)。这些控件本身包含对对象属性的绑定。 e.g:

<Image Source={Binding Image}/>

正如Muad'Dib指出的那样(30秒前),Image必须是一个字符串,它是图像的路径,而不是实际的图像对象。