मुझे लगता है कि मुख्य कारण सीलबंद वस्तुओं है। यदि आपके पास स्टाइल पदानुक्रम है:
Style A
/ \
Style A1 Style A2
यह एक कठिन परिदृश्य नहीं हो सकता है। आप गतिशील संसाधन का उपयोग करके StyleA
का संदर्भ लें, इसलिए जब भी वह संसाधन बदलता है, Style A1
और Style A2
को उनकी BasedOn
संपत्ति बदलनी चाहिए। हालांकि, आपके आवेदन में स्टाइल का उपयोग होने के बाद, यह एक सीलबंद वस्तु बन जाता है। Style A
अपरिवर्तनीय हो जाता है।
एक वैकल्पिक हल आप उपयोग कर सकते है:
Style A
बदलने की जरूरत है।
- नया स्टाइल ऑब्जेक्ट बनाएं जो नया
Style A
संसाधन होगा।
Style A1
और Style A2
का एक नया संस्करण बनाएं। आपको एक प्रतिलिपि प्रक्रिया लिखनी होगी जो सभी Setters
, Resources
आदि की प्रतियां बनाती है। Style A
के नए संस्करण में सेट करें।
- संसाधन संग्रह अद्यतन करें ताकि तीन नई शैलियों वहां हों।
{DynamicResource StyleA1}
और {DynamicResource StyleA2}
अब तथ्य यह है कि उन संसाधनों परिवर्तन (चरण 4 से) और किसी भी संदर्भ स्वचालित रूप से अपडेट लेने चाहिए।
ध्यान दें कि यह एक बहुत ही सरल परिदृश्य है। असली दुनिया शैली पदानुक्रम अधिक जटिल हो सकते हैं, खासकर अगर वे कई फाइलों में फैले हुए हैं और मर्ज किए गए शब्दकोशों से आते हैं।
आशा है कि मैं आपकी समस्या को समझता हूं और मदद करता हूं।
स्रोत
2009-02-25 14:37:05
इस परिदृश्य के बारे में कैसे - एक अलग (यूएक्स) टीम आधार शैलियों का निर्माण करती है ... एक डेवलपर आधार शैली के अलावा कुछ गुणों को सेट करना चाहता है।आदर्श रूप में यह एक परिदृश्य है जहां देवस्टाइल आधारित "डायनामिक रिसोर्स यूक्स स्टाइल" ने मदद की होगी .. यदि यह संभव नहीं है, तो इसे नियंत्रित करने से पहले 2 शैलियों को मर्ज करने के विकल्प क्या हैं? – Gishu