powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Раскрашивание ячеек DataGrid WPF
4 сообщений из 4, страница 1 из 1
Раскрашивание ячеек DataGrid WPF
    #38264165
v.kirilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

Условие
Есть DataGrid с AutoGenerateColumns="True"
Заранее неизвестно ни количество столбцов, ни их наименование.

Задача
Раскрасить ячейки в зависимости от значений

Решил сделать через Converter
Код: xml
1.
2.
3.
<Style x:Key="ColorStyle" TargetType="{x:Type DataGridCell}">
    <Setter Property="Background" Value="{Binding Path=Content, RelativeSource={RelativeSource Mode=Self}, 
        Converter={StaticResource StatusToColorConverter}}" />


В самом конвертере обрабатываю TextBlock
Код: c#
1.
2.
3.
4.
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
    if (((TextBlock)value).Text == "BlaBla")
    ..............



Но почему-то при первой отрисовке ячейки не раскрашиваются, т.к. ((TextBlock)value).Text на этот момент пустой.
Зато они прекрасно раскрашиваются после сокрытия/показа UserControl'а, на котором находится этот DataGrid.

Может быть надо использовать вместо Binding Path=Content что-то другое?
...
Рейтинг: 0 / 0
Раскрашивание ячеек DataGrid WPF
    #38264175
v.kirilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В идеале хотелось бы в конвертере получать доступ к элементу модели, на основании которой пишется значение в ячейку.

И забыл сказать, что данные таблице предоставляет DataTable, если это важно
...
Рейтинг: 0 / 0
Раскрашивание ячеек DataGrid WPF
    #38264177
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v.kirilinМожет быть надо использовать вместо Binding Path=Content что-то другое?Да:

Binding Path=Content.Text

зы: Лучше привязываться к модели а не к контролам.
...
Рейтинг: 0 / 0
Раскрашивание ячеек DataGrid WPF
    #38264205
v.kirilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Кv.kirilinМожет быть надо использовать вместо Binding Path=Content что-то другое?Да:

Binding Path=Content.Text

зы: Лучше привязываться к модели а не к контролам.

О, да! Спасибо, так работает!

Я бы и рад к модели, но я изначально не знаю, какие поля будут в DataTable
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Раскрашивание ячеек DataGrid WPF
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]