14
所以這裏是我試圖做的一點簡單的介紹,我只是要從代碼開始,它很可能是有意義的。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文章,我不太喜歡這種解決方案,是不是有更簡單的方法可以在這裏做到?
InnerGlowColor =「Teal」問題是,如果由一個樣式設置的字段在基礎中被覆蓋,則觸發器不會改變任何內容。 – Firoso 2009-09-28 18:57:18
+1我正要對此作出迴應。發佈你自己的答案,然後接受它。 :) – 2009-09-28 21:27:56