Как я могу оформить ячейку Telerik Datagrid на основе источника данных с помощью конвертера? - PullRequest
0 голосов
/ 19 апреля 2020

Я хотел бы применить указанный c цвет переднего плана к ячейке Telerik Datagrid на основе данных Itemsource.

Сначала я создал сетку XAML:

<grid:RadDataGrid.Columns>
                                <grid:DataGridTextColumn PropertyName="Order" Header="#">
                                </grid:DataGridTextColumn>
                                <grid:DataGridTextColumn PropertyName="CustomerName" Header="Customer Name" />
                                <grid:DataGridDateColumn PropertyName="Start" Header="Start" CellContentFormat="{}{0:T}" />
                                <grid:DataGridDateColumn PropertyName="End" Header="End" CellContentFormat="{}{0:T}"/>
                            </grid:RadDataGrid.Columns>                            
                        </grid:RadDataGrid>

Затем Я применил стиль к столбцу Speci c:

<grid:DataGridTextColumn PropertyName="Order" Header="#">
                                    <grid:DataGridTextColumn.CellContentStyle>
                                        <Style TargetType="TextBlock">
                                            <Setter Property="Foreground" Value="{Binding Order, Converter={StaticResource converter}}" />
                                            <Setter Property="HorizontalAlignment" Value="Center"/>
                                            <Setter Property="VerticalAlignment" Value="Center"/>
                                        </Style>
                                    </grid:DataGridTextColumn.CellContentStyle>
                                </grid:DataGridTextColumn>

После этого я создал конвертер:

public class ColorConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            var data = *** ITEMSOURCE ***

            if (*** CONDITION ***)
                return new SolidColorBrush(Colors.LightBlue);

            else
                return DependencyProperty.UnsetValue;
        }

        public object ConvertBack(object value, Type targetType, object parameter, string language)
        {
            throw new NotImplementedException();
        }
    }

Без конвертера я могу стилизовать текстовое поле переднего плана, но с помощью этого кода я просто получаю пустую ячейку.

Я прочитал кое-что о том факте, что сеттеры UWP больше не поддерживают привязки, но я не смог найти для этого чистый обходной путь. Вы можете мне помочь?

...