Окрасить ячейки datagrid wpf

120
10 января 2021, 00:40

имеется вот такая таблица Datagrid

Ячейки на данный момент окрашиваются конвертером

  public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var x = value;
        if (x.ToString().Contains("ночь"))
        {
            return System.Windows.Media.Brushes.LightBlue;
        }
        else if (x.ToString().Contains("день"))
        {
            return System.Windows.Media.Brushes.LightYellow;
        }
        else
        {
            return value;
        }
    }

и конвертер привязан к таблице стандартно вот так :

<Style TargetType="DataGridCell">
                        <Setter Property="Background" Value="{Binding Content.Text,RelativeSource={RelativeSource Self}, Converter={StaticResource IsPivotalEntryToColorConverter}, Mode=OneWay}"/>
                        <Setter Property="Foreground" Value="Black"/>                        
                    </Style>

Данные для формирования итоговой таблицы собираю в сводную таблицу а потом в DataTable привязываю их вот так

DataView buf = newDt.DefaultView;
        Schedule_table.ItemsSource = buf;

Собственно вопрос: Как я могу избавиться от слов "день" и "ночь" ,не потеряв при этом окраску фона ячеек?

Я перепробовал кучу вариантов и даже записывал в DataTable не строки а объекты содержащие номер и время суток но тогда GridView выводит в ячейки не номер а название объекта в духе "PivotTable.CWrapper"

UPD.

 <DataTemplate>
   <Grid Background="{Binding DataContext,Converter={StaticResource IsPivotalEntryToColorConverter}}">
   </Grid>
 </DataTemplate>

переделал как советовали в комментариях,результат выше. при этом DataTable Заполнен вот такими объектами

READ ALSO
Как не хардкодить пароли и учётки в коде?

Как не хардкодить пароли и учётки в коде?

Как не хардкодить учетные записи? Какие есть варианты решения данной проблемы?

94
Как сделать рейтинг в игре?

Как сделать рейтинг в игре?

Есть игра "Найди элементы на картинке" есть две разных картинки,где нужно искать элементы

110
Форматировать данные в Excel как таблицу

Форматировать данные в Excel как таблицу

Работаю с Excel на c#Задаю имена столбцов, вывожу данные

122
Как сделать при запросе у пользователя имени,чтобы он мог ввести не более 10 символов в textbox?

Как сделать при запросе у пользователя имени,чтобы он мог ввести не более 10 символов в textbox?

есть textbox в него вводится имя нужно сделать несколько условий :

102