У меня есть следующий XAML, используемый для отображения подробной информации об элементе, выбранном в виде списка. Я хочу, чтобы прямоугольник отображал стандартный информационный цвет за текстом, кроме случаев, когда выбранный элемент представляет сообщение об ошибке. Код ниже не работает как есть и всегда показывает информацию цвета. Это прекрасно работает, если я не укажу Fill
для корневого <Rectangle />
элемента.
<Rectangle Fill="{DynamicResource {x:Static SystemColors.InfoBrushKey}}"
RadiusX="4" RadiusY="4">
<Rectangle.Style>
<Style TargetType="{x:Type Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=CurrentMessage.Severity"
Value="Error" >
<Setter Property="Fill" Value="#20FF0000" />
</DataTrigger>
</Style.Triggers>
</Style>
</Rectangle.Style>
</Rectangle>
Фрагмент не отражает его, но реальный код имеет довольно много возможных уровней статуса для серьезности, поэтому я не хочу определять триггер для каждой возможной серьезности. Логика, которую я хочу, это «использовать информационный цвет, если серьезность не является ошибкой, а затем использовать красный».
Я уверен, что неправильно понял какой-то фундаментальный аспект WPF, но, похоже, не могу его точно определить. Может ли кто-нибудь указать мне правильное направление, чтобы указанные мной триггеры данных переопределяли существующее значение Fill, когда их условия выполняются?