2011-04-01 4 views
15

मेरे पास मेरी ग्रिड (राज्य के आधार पर सेल रंग इत्यादि) के लिए परिभाषित शैलियों की एक बड़ी संख्या है। अभी मैं उपयुक्त रंग सेट करने के लिए डेटा ट्रिगर्स का उपयोग करता हूं। मैं अपने ऐप के प्रदर्शन में सुधार करने के लिए देख रहा हूं और सोच रहा था कि बड़ी संख्या में शैलियों धीमे हो सकती हैं (लगातार डेटा बदलने और शैलियों को फिर से गणना/ताज़ा करने की आवश्यकता के कारण)। क्या DataTriggers के बजाय कन्वर्टर्स के साथ डेटा बाइंडिंग का उपयोग करना बेहतर है?कनवर्टर प्रदर्शन के साथ डेटा ट्रिगर बनाम डाटाबेसिंग

यदि लक्ष्य किसी भी विधि का उपयोग करके हासिल किया जा सकता है, तो क्या कोई प्रदर्शन अंतर है? मैं दृश्यों के पीछे क्या चल रहा हूं उससे परिचित नहीं हूं इसलिए मुझे यकीन नहीं है।

उत्तर

13

this episode of the Hanselminutes podcast में, अतिथि लॉरेन बग्नियन (एमवीवीएम लाइट के निर्माता) का वर्णन है कि कन्वर्टर्स का उपयोग करने के साथ एक प्रदर्शन हिट जुड़ा हुआ है। वह इंगित करता है कि यह डेस्कटॉप अनुप्रयोगों में लगभग हमेशा नगण्य है, लेकिन WP7 अनुप्रयोगों में, यह अनुशंसा की जाती है कि व्यूमोडल्स कन्वर्टर्स पर भारी निर्भर होने के बजाय सीधे ब्रश की तरह चीजों का पर्दाफाश करें, विशेष रूप से यदि सूची वर्चुअलाइजेशन से निपटने के मामले में, जिसमें स्क्रॉलिंग कई कारणों से होती है रूपांतरण के आविष्कार।

यह संभव है कि आपके परिदृश्य में एक ही चीज हो रही है, केवल ट्रिगर्स की मात्रा दी गई है (या रूपांतरण अगर आपने स्विच किया है)।

अवधारणा के सबूत के रूप में, आप अपने व्यू-मॉडल को "डब्ल्यूपीएफ व्यूमोडेल" में लपेटने पर विचार कर सकते हैं, जो रंगों और अन्य WPF- विशिष्ट मानों को स्वयं प्रदर्शित करता है, इसके बजाय रंगों द्वारा निर्धारित किया जा सकता है रनटाइम ट्रिगर्स का आविष्कार और IValueConverters। फिर आप उस पर सीधे बाध्य करने में सक्षम होंगे, और न तो ट्रिगर्स और न ही कनवर्टर्स का उपयोग करें। मुझे परिणाम सुनने में दिलचस्पी होगी।

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