2010-03-10 15 views
11

बाध्यकारी मानना ​​सही है और छवि फ़ाइलों को वे कहां शुल करते हैं, क्या कोई यह बता सकता है कि ट्रिगर सही होने पर नीचे xaml में छवि क्यों नहीं बदलेगी?एक छवि स्रोत पर wpf डेटाैट्रिगर

चीयर्स,
Berryl

  <Image Source="..\..\Images\OK.png" Grid.Column="2" Stretch="None"> 
       <Image.Style> 
        <Style> 
         <Style.Triggers> 
          <DataTrigger Binding="{Binding TimeSheet, Converter={StaticResource overQuotaConv}}" Value="True"> 
           <Setter Property="Image.Source" Value="..\..\Images\Error.png"/> 
          </DataTrigger> 
         </Style.Triggers> 
        </Style> 
       </Image.Style> 
      </Image> 

उत्तर

31

प्रयास करें निम्नलिखित ...

  • सेट TargetType = "{x: प्रकार छवि}" शैली
  • बदलें सेटर के संपत्ति पर संपत्ति = "स्रोत"

जिस तरह से आपकी संपत्ति पथ cur है किराए पर परिभाषित, यह छवि नामक छवि (जो अस्तित्व में नहीं है) पर एक संपत्ति की तलाश में है, उसके बाद स्रोत कहा जाता है।

इसके अतिरिक्त, शीर्ष पर छवि टैग से स्रोत विशेषता को हटा दें। यह स्टाइल द्वारा जो कुछ भी लागू होता है उसे ओवरराइड करेगा। आप किसी अन्य DataTrigger में ले जा सकते हैं या आप इतने की तरह एक सामान्य सेटर में रख सकते हैं:

<Image Grid.Column="2" Stretch="None"> 
    <Image.Style> 
     <Style TargetType="{x:Type Image}"> 
      <Setter Property="Source" Value="..\..\Images\OK.png" /> 
      <Style.Triggers> 
       <DataTrigger Value="True" Binding="{Binding TimeSheet, Converter={StaticResource overQuotaConv}}"> 
        <Setter Property="Source" Value="..\..\Images\Error.png"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Image.Style> 
</Image> 

आपका समय दिलचस्प है। मैं बस अपने ब्लॉग पर कुछ नियंत्रण के बारे में कुछ पोस्ट करने जा रहा हूं जो कुछ ऐसा ही करता है लेकिन एक बहुत अधिक संक्षिप्त वाक्यविन्यास में।

+0

suh-weet यह सामान अब तक बाइट आकार के बिट्स में आ रहा है। धन्यवाद! – Berryl

+0

एकाधिक हाय 5 ... मुझे नहीं पता कि यह इतना कठिन क्यों था, लेकिन आपके उदाहरण ने मुझे आवंटित करने में मदद की। –

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