Отображение изображения в колонке со списком в сетке данных - PullRequest
1 голос
/ 14 февраля 2011

Я хотел бы иметь комбинированный список в сетке данных, чтобы показать список реальных изображений вместо текста.

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

Я также попробовал template column,, но получил те же результаты - список текста с названием класса изображения. Какие-нибудь образцы, демонстрирующие это?

1 Ответ

4 голосов
/ 14 февраля 2011

Вложите столько шаблонов, сколько вам нужно, если ваш ComboBox показывает имя класса, просто установите ComboBox.ItemTemplate, чтобы что-то сделать с вашим классом. Здесь я предполагаю, что MyImageList состоит из ImageSource объектов (требуются дополнительные спецификации размеров):

<DataGridTemplateColumn>
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding MyImageList}">
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <Image Source="{Binding}"/>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

В качестве альтернативы вы также можете использовать 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>
...