Фон ячейки WPF DataGrid с использованием привязки - PullRequest
5 голосов
/ 21 октября 2011

У меня есть DataGrid со столбцом с именем Color.

<DataGridTextColumn Header="Color" Binding="{Binding MyColor.Percentage}"/>

ItemSource of DataGrid - это некоторый объект со свойством MyColor внутри.

public class MyColor
{
    Color Background { get; set; }
    int Percentage { get; set; }
}

Когда ItemSource установлен, столбец автоматически заполняется значениями Percentage. Теперь я хотел бы установить цвет фона каждой ячейки в этом столбце, соответствующий свойству MyColor.Color. Есть ли способ сделать это с помощью привязки? Что-то вроде

Background="{Binding MyColor.Color}"

Color свойство имеет формат html #XXXXXXXX (это называется формат html?).

1 Ответ

9 голосов
/ 21 октября 2011

Вы можете установить его с помощью CellStyle:

<DataGridTextColumn Header="Color" Binding="{Binding MyColor.Percentage}">
    <DataGridTextColumn.CellStyle>
        <Style TargetType="DataGridCell">
            <Setter Property="Background" Value="{Binding MyColor.Background}" />
        </Style>
    </DataGridTextColumn.CellStyle>
</DataGridTextColumn>

Также вы должны изменить свой класс MyColor, чтобы иметь свойство Background с типом Brush, а не Color.Или вы можете использовать конвертер для преобразования Color в SolidColorBrush.

...