2009-11-13 9 views
8

मैं अपने App.xaml फाइल के अंदर एक अजीब त्रुटि मिल रही है:सिल्वरलाइट App.xaml में त्रुटि 'तत्व पहले से ही एक और तत्व का बच्चा है'

तत्व पहले से ही एक और तत्व का बच्चा है।

मेरे App.xaml फ़ाइल इस तरह दिखता है:

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      x:Class="Celerior.Annapurna.SL.App"> 
    <Application.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="ProvisiorResourceDictionary.xaml"/> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Application.Resources> 
</Application> 

त्रुटि पूरे ResourceDictionary तत्व (लाइनों से 5 से 9) के लिए रिपोर्ट किया गया है।

ProvisiorResourceDictionary.xaml में कई शैलियों और टेम्पलेट्स शामिल हैं। मेरी राय में कुछ भी रोमांचक नहीं है।

क्या किसी को पता है कि क्या गलत है?

सधन्यवाद,

रोनाल्ड विल्डेनबर्ग

+0

क्या आप अन्य जानकारी प्रदान कर सकते हैं। ProvisorResourceDictionary.xaml में क्या है। क्या यह कहीं और इस्तेमाल किया जाता है? क्या इसमें कुछ घर उगाए गए घटक हैं जो उनके रचनाकारों या संपत्ति सेट प्रक्रियाओं में कुछ अजीब चीजें कर रहे हैं? – AnthonyWJones

+0

मैंने ProvisiorResourceDictionary की सामग्री के बारे में मेरे प्रश्न में कुछ जानकारी जोड़ा। इसमें केवल शैलियों और टेम्पलेट्स हैं। हो सकता है कि मैं टुकड़े से टुकड़े से कोड को हटाने का प्रयास करूँगा यह देखने के लिए कि क्या इससे मदद मिलती है। –

+0

मुझे एक विचार है। मेरे पास डेटा टेम्पलेट है जो मैं दो अलग-अलग टेम्पलेट चयनकर्ताओं (कस्टम क्लास जो कुछ जानकारी के आधार पर उपयोग करने के लिए टेम्पलेट का पता लगाता है) में जोड़ता हूं। क्या डेटा टेम्पलेट का पुन: उपयोग करना असंभव है ?? –

उत्तर

6

मैं इस समस्या अपने आप का कारण मिल गया है, AnthonyWJones द्वारा टिप्पणी में दिए गए संकेतों के लिए धन्यवाद।

ऐसा लगता है कि Silverlight resource dictionary के अंदर सबकुछ साझा किया जाना चाहिए। इसका कारण यह है कि संसाधन शब्दकोश के अंदर आइटम (संभवतः) नियंत्रण पदानुक्रम में कई स्थानों पर जोड़े जाएंगे।

मेरे पास मेरे संसाधन शब्दकोश के अंदर दो आइटम थे जो साझा करने योग्य नहीं थे।

संपादित: WPF में, आप वस्तुओं पर x:Shared विशेषता एक संसाधन शब्दकोश के अंदर का उपयोग हर संसाधन पुनः प्राप्ति के लिए एक नया उदाहरण बनाने के लिए WPF मजबूर करने के लिए कर सकते हैं। दुर्भाग्यवश, Silverlight does not support यह विशेषता।

+3

टीआईपी: यदि आप सुनिश्चित नहीं हैं कि कौन सी चीजें इस त्रुटि का कारण बन रही हैं, तो App.xaml द्वारा संदर्भित एक दूसरा संसाधन 2.xaml बनाएं और इसमें कुछ फ़ाइलों को स्थानांतरित करें। सुनिश्चित करें कि आप पूरी तरह से recompile। इससे आपको यह निर्धारित करने की अनुमति मिलनी चाहिए कि कौन से संसाधन अस्थिर हैं और समस्या –

+3

समस्या का कारण है। मुझे यह त्रुटि मिली और हमारे डेवलपर्स में से एक ने तत्वों में से एक पर 'x: key' के बजाय 'x: name' डाला। – bendewey

3

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

आईई विशेष रूप से शिकायत इस बारे में शिकायत करेगा।

<Image ToolTipService.ToolTip="Email customer" 
     Source="../images/FILE-THAT-DOESNT-EXIST.png"></Image> 

लेकिन जब से इस संसाधन से संबंधित है वहाँ संभवतः एक परिदृश्य में जहाँ इस :-)

1

मैं बहुत ही समस्या थी, जब मैं अपने Styles.xaml जाँच की इस प्रश्न का उत्तर होगा हो सकता है फ़ाइल, इसमें एक ही नाम के साथ कुछ तत्व थे, मैंने तत्वों का नाम बदल दिया और उन्हें अद्वितीय बना दिया, और समस्या हल हो गई :)

0

ऐसा लगता है कि यदि आप संसाधन स्रोत के अंदर एक कुंजी के साथ स्टोरीबोर्ड डालने का प्रयास करते हैं तो यह भी ओकर्स लगता है , इसे एक नियंत्रण टेम्पलेट

के अंदर डालने की बजाय

ऐसा इसलिए है क्योंकि स्टोरीबोर्ड स्टेटफुल ऑब्जेक्ट्स हैं और इन्हें पुन: उपयोग नहीं किया जा सकता है (वे ट्रैक करते हैं अगर वे शुरू हो जाते हैं, रुका हुआ इत्यादि।)

0

जवाब में @Simon_Weaver से सलाह

सुझाव: यदि आप सुनिश्चित जो आइटम इस त्रुटि उत्पन्न कर रहे नहीं कर रहे हैं, बस App.xaml और इस कदम के द्वारा संदर्भित एक दूसरे Resources2.xaml बनाने कुछ फाइलों पर। सुनिश्चित करें कि आप पूरी तरह से recompile। इस आप निर्धारित करने के लिए संसाधन गैर साझा किए जाने योग्य और के कारण समस्या

मुझे नेतृत्व यह आइटम, पहले एक मैं वास्तव में हटाया खोजने के लिए कर रहे हैं की अनुमति चाहिए; यह एक अप्रयुक्त पथ वस्तु थी:

<Path x:Key="RightArrowPath" .. /> 

अपराधी के रूप में। Resource Dictionaries #Objects for Resource Dictionary Usage पर एन्कोडिंग, यह एक साझा करने योग्य आइटम के रूप में Path सूचीबद्ध नहीं करता है।

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