2009-09-28 15 views
14

पर ट्रिगर मूल्य के रूप में तो यहाँ क्या मैं एक छोटे से संक्षेप में करने के लिए कोशिश कर रहा हूँ, मैं सिर्फ कोड के साथ शुरू करने वाला हूँ और यह सबसे अधिक संभावना मतलब होगा।DataTrigger 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> 

और enum परिभाषा:

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

Am मैं इस काम करने के लिए एक टुकड़ा याद आ रही? मुझे एम्स पर कुछ डब्ल्यूपीएफ लेख मिल गए हैं जो ऑब्जेक्ट डेटा स्रोतों पर भरोसा करते हैं और मुझे वास्तव में उस समाधान को पसंद नहीं है, क्या मैं यहां कुछ और सरल नहीं कर सकता हूं?

+2

InnerGlowColor = "चैती" मुद्दा यह है कि क्षेत्र एक शैली के द्वारा स्थापित किया जा रहा है, तो आधार चलाता कुछ भी नहीं बदलेगा में ओवरराइड है था। – Firoso

+0

+1 मैं उस प्रभाव का जवाब देने वाला था। अपना उत्तर पोस्ट करें और फिर इसे स्वीकार करें। :) –

उत्तर

8

मुझे समाधान मिला है और यह काफी मूर्ख था।

शैलियाँ एक नियंत्रण के लिए दृश्य टेम्पलेट का एक प्रकार के रूप में तैयार कर रहे हैं, लेकिन वे नहीं एक हो-सब/अंत सभी दृश्य मॉडल के रूप में, दृश्य कार्यान्वयन के लिए एक आधार के रूप में तैयार कर रहे हैं।

नतीजतन, मेरी एक स्थिति थी जिसमें मेरा टेम्पलेट निर्धारित करता था कि इनरग्लोकोलर क्या होना चाहिए। हालांकि, तत्व में InnerGlowColor = "Teal" विशेषता को लागू करके, मैंने अपनी दृश्य शैली को अनदेखा कर, प्रभाव में ओवरराइड बनाया है। समाधान तत्व घोषणा में निर्भरता संपत्ति को हटाने के लिए था।

संबंधित मुद्दे