2012-12-16 8 views
15

MSDN says on event setters:EventSetters

घटना setters एक शैली है कि एक विषय संसाधन शब्दकोश में शामिल है में उपयोग नहीं किया जा सकता है। इसका कारण यह है कि रन टाइम पर एक थीम संसाधन शब्दकोश अक्सर बाइनरी एक्सएएमएल (बीएएमएल) फाइलों को ढीला होता है, और इसमें कोई स्कोप परिभाषित नहीं होता है जहां कोड-पीछे के साथ हैंडलर मौजूद हैं।

यह the first answer to this SO question द्वारा की पुष्टि की है, जिसमें कहा गया है:

एक संसाधन XAML फाइल के पीछे एक कोड नहीं हो सकता है, वे आमतौर पर "ढीला XAML" कहा जाता है। आप इसके बारे में msdn में EventSetter के बारे में पढ़ सकते हैं।

हालांकि, मैं अभी तक ईवेंट सेटर्स की सीमाओं को समझ नहीं पा रहा हूं। मैंने संसाधन शब्दकोश के लिए कोड-बैक फ़ाइल का उपयोग करने का प्रयास किया है। मैंने कहा संसाधन संसाधन में एक शैली के भीतर परिभाषित टेम्पलेट के भीतर निहित नियंत्रण की घटना के लिए एक ईवेंट हैंडलर असाइन किया है - और यह काम करता है।

दूसरी ओर, उसी संसाधन शब्दकोश में शैली में इवेंट सेटर जोड़ना, अपवाद में परिणाम देता है।

क्या मैंने एक विशेष मामला मारा है जहां यह काम करने के लिए होता है?

या टेम्पलेट में इवेंट हैंडलर सेट करना हमेशा काम करता है, लेकिन यदि ऐसा है, तो मैं एक ही संसाधन शब्दकोश में किसी शैली में इवेंट सेटर का उपयोग क्यों नहीं कर सकता?

मेरा प्रश्न करने पर निर्भर करता:

वास्तव में क्या MSDN के बयान है कि एक विषय संसाधन शब्दकोश अक्सर ढीला द्विआधारी XAML है मतलब है - कितनी बार, किन परिस्थितियों में बिल्कुल के तहत?

+0

क्या आपने थीम संसाधन शब्दकोश के लिए कोडबेइंड का उपयोग किया था? –

+0

@ voroninp: हाँ; सीएफ कथन के साथ अनुच्छेद "मैंने संसाधन शब्दकोश के लिए कोड-बैक फ़ाइल का उपयोग करने का प्रयास किया है।" –

+0

रिसोर्स डिक्शनरी में कोडबेइंड हो सकता है। इस दृष्टिकोण का वर्णन मैकडॉनल्ड्स की पुस्तक - प्रो डब्ल्यूपीएफ में सी # 2010 में किया गया है। मुझे लगता है कि अक्षम स्टाइल इवेंटेटर सिर्फ डिज़ाइन द्वारा हैं। लेकिन मैं आपके साथ स्पष्ट नहीं हूं क्यों। –

उत्तर

2

इसका मतलब है कि इसे अपने नाम पर या नामस्थान के भीतर कोड के साथ संकलित नहीं किया गया है।

या इसे एक और तरीके से रखने के लिए एक ढीले xaml फ़ाइल में कोई कोड भाग नहीं है, इसे किसी डेटाबेस से उदाहरण के लिए पाठ के रूप में पढ़ा जा सकता है या फ्लाई पर जेनरेट किया जा सकता है और किसी भी कोडिफाइड एसोसिएशन के बिना लोड किया जा सकता है।

मौसम के रूप में यह एक वैध कारण है या नहीं। यह प्रत्येक डेवलपर पर निर्भर करता है लेकिन यह ढीला xaml का मतलब है।

संपादित करें:

अपनी टिप्पणी के जवाब में, मुझे लगता है कि वे विशेष रूप से संसाधन और शैलियाँ की बात कर रहे के रूप में इन सबसे आम "ढीला फ़ाइलें" कर रहे हैं और सामान्य रूप में ज्यादातर लोगों को एक कोड फ़ाइल के साथ उन्हें वापस नहीं है । व्यक्तिगत रूप से मैं इसे एक सामना करने के रूप में देखते हैं। वे आसानी से एक लूज = सही विशेषता जोड़ सकते थे और इस समस्या को हल कर सकते थे।

असल में यह मुद्दा ढीली फाइलों की मात्रा या आवृत्ति के साथ नहीं है जिसके साथ उनका उपयोग किया जाता है, इसे इस तथ्य के साथ करना होगा कि एक लापता सुविधा की क्षतिपूर्ति के लिए एक नियम बनाया गया था। यह बहुत आसान होगा अगर उन्होंने कहा कि आप x, y, z नहीं कर सकते हैं क्योंकि हमने इसके बजाय समर्थन नहीं बनाया है, यह कहने के बजाय कि कुछ अनियंत्रित ढीले xaml फ़ाइलों की वजह से है।

+0

क्षमा करें, शायद सवाल था अस्पष्ट - मुझे पता है कि * ढीला एक्सएएमएल * का क्या मतलब है। मेरा प्रश्न शब्द * अक्सर * के बारे में है; उद्धृत संदर्भ में अक्सर * क्या मतलब है? दूसरे शब्दों में, जब वास्तव में? –

+0

और जोड़ा गया, टीएल; डीआर यह एक है पुलिस वाले बाहर.. – McDonnellDean