2012-11-06 17 views
7

में मुझे पता है कि इस प्रश्न से संबंधित बहुत सारे विषय हैं लेकिन मुझे कोई समाधान नहीं मिला जो मेरी समस्या के लिए पूरी तरह से फिट हो ... शायद कोई नहीं है?डेटा टेम्पलेट एक अलग संसाधन डिक्शनरी

इस समय मेरे पास UserControl है जिसमें एक नेविगेशन है जो उपयोगकर्ता को विभिन्न स्क्रीन के बीच स्विच करने की अनुमति देता है। इन स्क्रीनों को Resources में UserControl के भाग DataTemplate के रूप में परिभाषित किया गया है।

कुछ इस तरह:

<DataTemplate TargetType={x:Type vm:ViewModel1}> 
    ... 
</DataTemplate> 
<DataTemplate TargetType={x:Type vm:ViewModel2}> 
    ... 
</DataTemplate> 
<DataTemplate TargetType={x:Type vm:ViewModel3}> 
    ... 
</DataTemplate> 

ठीक है और क्या मैं चाहता हूँ करने के लिए एक अलग XAML फाइल में इन DataTemplates जगह है और UserControl के संसाधनों हिस्सा करने के लिए इस फ़ाइल को लिंक करने के लिए है। क्या मुझे वास्तव में अपने नए एक्सएएमएल रिसोर्स डिक्शनरी को अपने आवेदन में ग्लोबली रूप से उपलब्ध करना है (इसे ऐप.एक्सएमएल संसाधनों में जोड़ना) या क्या कोई और बेहतर तरीका है?

उत्तर

13

नहीं, आपको इसे वैश्विक बनाने की आवश्यकता नहीं है। बस अपने उपयोगकर्ता नियंत्रण संसाधन अनुभाग में संसाधन शब्दकोश को उसी तरह से घोषित करें जैसा आपने app.xaml में किया था।

<Control.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Dictionary1.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Control.Resources> 

यदि आपको आवश्यकता हो तो आप सापेक्ष फ़ाइल पथ "..\Folder\Folder\Dictionary.xaml" का उपयोग कर फ़ाइल को इंगित कर सकते हैं।

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