在数据网格的组合框列中显示图像

Bra*_*itz 2 data-binding silverlight wpf datagrid

我想在数据网格中有一个组合框来显示实际图像的列表,而不是文本。

我可以通过手动构建组合框来完成这项工作,但似乎无法通过绑定来完成(这是可以使用数据网格的唯一方式)。

我也尝试过,template column,但得到了相同的结果 - 显示图像类名称的文本列表。任何样本证明这一点?

H.B*_*.B. 5

根据需要嵌套尽可能多的模板,如果您ComboBox显示的类名称只是设置ComboBox.ItemTemplate为对您的类执行某些操作。在这里,我假设MyImageListImageSource对象组成(需要更多的尺寸规范):

<DataGridTemplateColumn>
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding MyImageList}">
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <Image Source="{Binding}"/>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)

或者,您也可以使用 a DataGridComboBoxColumn,只需使用CellStyle来设置DataTemplate可以显示您的图像:

<DataGridComboBoxColumn ItemsSource="{Binding MyImageList}">
    <DataGridComboBoxColumn.CellStyle>
        <Style TargetType="ComboBox">
            <Setter Property="ItemTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <Image Source="{Binding}"/>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </DataGridComboBoxColumn.CellStyle>
</DataGridComboBoxColumn>
Run Code Online (Sandbox Code Playgroud)