2009-07-07 15 views

उत्तर

17

आपको एक कस्टम कनवर्टर की आवश्यकता है। article

1

एसपी 1 में कुछ जोड़ा जा सकता है, लेकिन जिस तरह से मैंने इसे अतीत में हासिल किया है वह वैल्यू कन्वर्टर के साथ है जो मूल्य को बुलियन में परिवर्तित करता है।

आपके उदाहरण में आपका कनवर्टर सही होगा यदि मान> 25 था, तो झूठा अन्यथा। अगर यह समझ में नहीं आता है तो मैं एक उदाहरण डाल सकता हूं :-)

4

कोड के पीछे नहीं। सामान्य अभ्यास है:

  • UI तत्वों के साथ काम करते समय, एक IValueConverter बनाएं और कनवर्टर का उपयोग करके संपत्ति से जुड़ें।
  • बाध्य डेटा के साथ काम करते समय, अपने डेटा पर एक बूल संपत्ति बनाएं और उस संपत्ति से ट्रिगर करें।
+0

मैं भी बाध्य डेटा के साथ एक कनवर्टर का उपयोग करने का विचार पसंद। एमवीवीएम पैटर्न का उपयोग करते समय यह व्यू कोड को व्यूमोडेल से बाहर रखने में मदद करता है। कनवर्टर पैरामीटर के साथ isLessThanConverter दृष्टिकोण को इंगित करने के लिए –

29

पर एक नज़र डालें आप डेटा ट्रिगर का उपयोग कर सकते हैं और बाध्यकारी सापेक्ष स्रोत स्वयं को सेट कर सकते हैं। डेटा ट्रिगर बाध्यकारी और बाइंडिंग की अनुमति देता है जिससे आप कनवर्टर्स कर सकते हैं।

उदाहरण:

<Button Content="I change colour depending on my width for some reason"> 
     <Button.Triggers> 
      <DataTrigger 
       Binding="{Binding 
       Path=Width, 
       RelativeSource={RelativeSource Self}, 
       Converter={StaticResource isLessThanConverter}, 
       ConverterParameter=50}" 
       Value="True"> 
       <Setter Property="Button.Background" Value="Red" /> 
      DataTrigger> 
     Button.Triggers> 
    Button> 

Reference

+3

+1। – cplotts

+2

बाध्यकारी में, 'ActualWidth' का उपयोग किया जाना चाहिए क्योंकि 'चौड़ाई' संपत्ति स्पष्ट रूप से सेट नहीं होने पर' NaN' है। – pogosama

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