Как контролировать весь фон DataGridCell, а не только текстовую часть? - PullRequest
3 голосов
/ 30 апреля 2010

Я пытаюсь управлять фоном ячейки DataGrid в столбце при условии его значения.К сожалению, я получаю что-то вроде этого:

альтернативный текст http://img11.imageshack.us/img11/5997/clipboard01da.png

Что не очень эстетично, я хотел бы, чтобы вся клетка была другого цвета, а не только часть позадитекст.Вот часть кода:

<DataGridTextColumn
    Binding="{Binding Path=PrivateMemorySize, StringFormat='#,##0'}" 
    Header="Memory Size" >
    <DataGridTextColumn.ElementStyle>
        <Style TargetType="{x:Type TextBlock}">
            <Setter Property="HorizontalAlignment" Value="Right" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=PrivateMemorySize,
                            Converter={StaticResource isLarge}, 
                            ConverterParameter=20000000}" Value="true">
                    <Setter Property="Background" Value="Yellow" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>

(isLarge - это просто преобразователь, который возвращает true, когда значение ячейки больше, чем параметр)

Если я определяю стиль дляцель DataGridCell, результат тот же.

Есть идеи, что может быть не так?Я не использую ничего необычного, просто DataGrid по умолчанию (который в этом примере связан с объектами CLR для заполнения таблицы).

1 Ответ

2 голосов
/ 30 апреля 2010

В стиле для вашего TextBlock, установите HorizontalAlignment на Stretch, и установите TextAignment на Right:

    <Style TargetType="{x:Type TextBlock}"> 
        <Setter Property="HorizontalAlignment" Value="Stretch" />
        <Setter Property="TextAlignment" Value="Right" /> 
        <Style.Triggers> 
            <DataTrigger Binding="{Binding Path=PrivateMemorySize, 
                        Converter={StaticResource isLarge},  
                        ConverterParameter=20000000}" Value="true"> 
                <Setter Property="Background" Value="Yellow" /> 
            </DataTrigger> 
        </Style.Triggers> 
    </Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...