DataTrigger on Enums как значение триггера в стиле WPF

Итак, вот что я пытаюсь сделать в двух словах, я просто начну с кода, и это, скорее всего, будет иметь смысл.

<bl:InnerGlowBorder x:Name="glow"
                    InnerGlowColor="Teal">
  <bl:InnerGlowBorder.Style>
    <Style TargetType="bl:InnerGlowBorder">
      <Style.Triggers>
        <DataTrigger Binding="{Binding ViewUnitStatus}"
                     Value="UnitStatusModel.Pass">
          <Setter Property="InnerGlowColor"
                  Value="Green" />
        </DataTrigger>
        <DataTrigger Binding="{Binding ViewUnitStatus}"
                     Value="UnitStatusModel.Fail">
          <Setter Property="InnerGlowColor"
                  Value="Red" />
        </DataTrigger>
        <DataTrigger Binding="{Binding ViewUnitStatus}"
                     Value="UnitStatusModel.Indeterminate">
          <Setter Property="InnerGlowColor"
                  Value="Yellow" />
        </DataTrigger>
        <DataTrigger Binding="{Binding ViewUnitStatus}"
                     Value="UnitStatusModel.Warning">
          <Setter Property="InnerGlowColor"
                  Value="Orange" />
        </DataTrigger>
      </Style.Triggers>
    </Style>
  </bl:InnerGlowBorder.Style>
</bl:InnerGlowBorder>

И определение перечисления:

namespace SEL.MfgTestDev.ESS.ViewModel
{
    public enum UnitStatusModel
    {
        Indeterminate,
        Pass,
        Fail,
        Warning,
    }
}

Мне не хватает части, чтобы сделать эту работу? Я нашел некоторые статьи WPF по перечислениям, которые полагаются на источники данных объектов, и мне не очень нравится это решение, нет ли здесь чего-то более простого, что я могу сделать здесь?

Ответы

Ответ 1

Я нашел решение, и это было довольно глупо.

Стили разработаны как своего рода визуальный шаблон для элемента управления, но они разработаны как основа для визуальной реализации, а не как визуальная модель be-all/end-all.

В результате у меня была ситуация, в которой мой шаблон продиктовал то, что должен быть InnerGlowColor. Однако, применяя к элементу атрибут InnerGlowColor = "Teal", я создал переопределение, игнорируя мой визуальный стиль. Решение состояло в том, чтобы просто удалить свойство зависимостей в объявлении элемента.