Я пытаюсь добавить несколько стилей в некоторые DataGrid
s, которые у меня есть.
В настоящее время я работаю над приложением, предназначенным для отображения огромных объемов финансовых данных (матриц чисел) со многими визуальными инструментами для обнаружения хороших данных, неправильных данных ... и исправления их при необходимости, сравнивая их с целевым значением
На данный момент у меня есть цветовой код, который в основном:
- Белый фон: текущее значение отлично
- Красный фон: текущее значение ниже целевого значения!
- Зеленый фон: текущее значение выше целевого значения!
И я играю с прозрачностью, чтобы установить четкость фона, если он близок к хорошему значению, в противном случае - сильный.
Теперь я хотел бы добавить еще один визуальный инструмент: своего рода визуальный шаблон, чтобы уведомить пользователя о том, что это значение, будучи правильным или неправильным, представляет потенциальный риск (как я уже говорил ранее, это финансовые данные, поэтому в основном измерение рисков потери денег).
В текущем приложении, запрограммированном в VBA, используется трюк, который добавляет пустой комментарий к ячейке, поэтому в углу появляется маленький красный треугольник.
Я бы хотел найти способ добавить его в свой стиль XAML. Самое приятное, что я придумал, - это добавить визуальный шаблон.
Вот пример того, чего я пытаюсь достичь:
![Grid example](https://i.stack.imgur.com/Fqtnp.png)
В левом столбце вы можете увидеть «нормальное отображение».
Справа я добавил «стили опасности», которые должны означать «предупреждение, что с этим значением что-то не так».
Первая строка показывает старый способ сделать это в Excel: с поддельным комментарием, который добавляет красный треугольник в верхнем правом углу.
Не могли бы вы представить, как этого добиться? Adorner
сделает трюк?
Кстати, сетка редактируема, поэтому я, очевидно, не хочу терять редактируемый аспект, поэтому я сомневаюсь в возможном Adorner
...
Вот текущий XAML Style
, который применяется как CellStyle
:
<Style x:Key="DynamicCellStyle" TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#FF316AC5" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter Property="Background">
<Setter.Value>
<MultiBinding Converter="{StaticResource CellToColorConverter}">
<!-- Some bindings for the converter to compute the actual color -->
</MultiBinding>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Grid Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
Есть идеи?
Большое спасибо!