Oto, co próbuję zrobić w małym skrócie, zacznę od kodu i najprawdopodobniej będzie to miało sens.DataTrigger na Enums jako wartość wyzwalacza w stylu 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>
a definicja enum:
namespace SEL.MfgTestDev.ESS.ViewModel
{
public enum UnitStatusModel
{
Indeterminate,
Pass,
Fail,
Warning,
}
}
Am I brakuje kawałek do tej pracy? Znalazłem niektóre artykuły WPF na temat wyliczeń, które opierają się na źródłach danych obiektów i nie podoba mi się to rozwiązanie, czy nie ma tu czegoś prostszego?
InnerGlowColor = "Teal" Problem polegał na tym, że jeśli pole ustawione przez styl zostanie przesłonięte w bazie, wyzwalacze niczego nie zmienią. – Firoso
+1 Właśnie miałem odpowiedzieć na ten efekt. Napisz własną odpowiedź, a następnie ją zaakceptuj. :) –