Xceed Wpf DatagridControl изменяет цвет ячеек определенных ячеек в зависимости от значений других ячеек - PullRequest
0 голосов
/ 07 ноября 2019

Я использую набор инструментов xceed datagrid и хочу установить основной цвет определенных ячеек в зависимости от значений других ячеек. Мои источники данных itemsSource - это список элементов пользовательского класса, который выглядит примерно так:

public class myclass
{
    …
    Property A
    Property B
    Property C
    ...
}

Мое условие для изменения цветов следующее: если значение A больше, чем значение Bячейка, отображающая B, должна иметь красный цвет переднего плана. Если A равно B, цвет должен быть синим, а если A меньше B, цвет должен быть зеленым. То же самое касается A и C.

Я пробовал несколько апрошей с разными уровнями успеха, но у меня пока ничего не получалось.

Я думаю, что моей самой успешной попыткой было определение стиля для DataCellв xaml:

<Style TargetType="{x:Type xcdg:DataCell}" >
            <Setter Property="Foreground" >
                <Setter.Value>
                    <Binding RelativeSource="{RelativeSource AncestorType={x:Type xcdg:DataRow}}" Path="DataContext"
                             Converter="{StaticResource IsValueIoConverter}"/>
                </Setter.Value>
            </Setter>

с преобразователем, который принимает Datacontext, который является объектом myclass, и решает, какой цвет выбрать.

Чтобы заставить его работать как для B, так и для CI, попытался использовать триггеры стилей и дать конвертеру параметр, чтобы различать мои дела, но я не могу заставить его работать. Моя проблема состоит в том, чтобы определить, из какого столбца происходит ячейка. Я пытался использовать имена, но у меня это не сработало.

Я посмотрел старые форумы xceed, но они использовали свойства в модели представления, чтобы выбирать между цветами, поэтому их подход не работал для меня:

https://xceed.com/forums/topic/change-CELL-COLOR-in-Datagrid/ https://xceed.com/forums/topic/Programmatically-changing-individual-DataCell-colours-based-on-data-in-other-DataRows/

...