2012-03-12 15 views
6

का उपयोग करके गतिशील रूप से ईवेंट हैंडलर सेट करें Ive कई आइटम्स कंट्रोल हैं जिन्हें मुझे अपने पूर्वावलोकनमोसलेफ्ट बटन डॉन इवेंट के लिए केवल एक ईवेंट हैंडलर संलग्न करने की आवश्यकता है जब एक निश्चित स्थिति पूरी हो जाती है।डेटा ट्रिगर

iv'e एक datatrigger के साथ अपने नियंत्रण के लिए एक शैली बनाया गया है, मैं इसे की बाइंडिंग की जाँच की और सिर्फ देखने के लिए कि datatrigger काम करता है यह पता करने की कोशिश की BorderThickness प्रॉपर्टी के लिए एक नियमित संपत्ति सेटर साथ। (यह करता है ..)

मैं इवेंट हैंडलर को संलग्न करने के लिए अपने डेटाैट्रिगर को कैसे लागू कर सकता हूं, जब डेटाट्रिगर की स्थिति एक इवेंट सेटर का उपयोग करके मिलती है, उसी तरह मैं एक नियमित संपत्ति सेटटर करता हूं? की तर्ज पर

कुछ:

'Set property 'System.Windows.EventSetter.Event' threw an exception.' 

इनर अपवाद::

 <Style TargetType="{x:Type ItemsControl}">        
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Turn}" Value="True"> 
       <EventSetter Event="PreviewMouseLeftButtonDown" Handler="ItemsControl_MouseLeftButtonDown"></EventSetter> 
      </DataTrigger>        
     </Style.Triggers> 
    </Style> 

इस मार्कअप eventsetter लाइन पर निम्न अपवाद फेंकता

 {"Value cannot be null.\r\nParameter name: value"} 
+0

बिल्कुल कौन सी लाइन उस अपवाद को फेंकता है? क्या यह ' 'है? –

+0

@XiaoChuanYu

उत्तर

11

दुर्भाग्य MSDN doc के तहत अनुसार टिप्पणियां:

ध्यान दें कि केवल स्टाइल.Setters EventSetter ऑब्जेक्ट्स का समर्थन करता है। ट्रिगर (TriggerBase और व्युत्पन्न वर्ग) नहीं समर्थन EventSetter

कर इस मामले में, DataTrigger TriggerBase से प्राप्त होता है, तो आप इसे इस्तेमाल नहीं कर सकते गतिशील ईवेंट हैंडलर्स स्थापित करने के लिए। एक वर्कअराउंड जो मैं अभी सोच सकता हूं, Turn के मूल्य के आधार पर गतिशील रूप से शैलियों को स्विच करना हो सकता है।

+0

मैं वास्तव में एक निर्भरता संपत्ति के पंजीकरण के बारे में सोचा है, जो होगा कुछ की तरह मेरे: mouseleftbuttondown = "सही", और यह एक सेटर में उपयोग मुझे नहीं पता कि मैं एक कस्टमर पर कस्टम निर्भरता संपत्ति का उपयोग कर सकता हूं .. –

+0

मुझे संदेह है कि यह आपकी स्थिति के अनुरूप है लेकिन आप http://stackoverflow.com/questions/1138339/can-i- गतिशील रूप से देखना चाहेंगे -विच-बीच-शैलियों-इन-डब्ल्यूपीएफ –

+0

यह एक अच्छा विचार है, बीमार शैली शैली के आधार पर एक शैली है जो मेरे पास पहले से है और कुछ ऐसा करता है। <आइटम नियंत्रण शैली = "{बाध्यकारी मोड़, कनवर्टर = {स्टेटिक स्रोत स्रोत MyTurnToStyleConverter}" /> –

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