2008-09-26 11 views
7

क्या संसाधन संसाधन को संसाधन संसाधन के बिना संसाधन जोड़ने के लिए कोई तरीका है?बिना किसी कुंजी के कोड से एक्सएएमएल संसाधन बनाना

उदाहरण के लिए, मैं XAML में इस संसाधन है:

<TreeView.Resources> 
    <HierarchicalDataTemplate DataType="{x:Type xbap:FieldPropertyInfo}" 
     ItemsSource="{Binding Path=Value.Values}"> 
      <TextBlock Text="{Binding Path=Name}" /> 
    <HierarchicalDataTemplate> 
</TreeView.Resources> 

मैं कोड का उपयोग करके डायनामिक इस संसाधन बना सकते हैं और TreeView ResourceDictionary में जोड़ने के लिए की जरूरत है। हालांकि, एक्सएएमएल में कोई कुंजी नहीं है जिसका मतलब है कि डिफ़ॉल्ट रूप से, सभी फील्डप्रॉपर्टीइन्फो प्रकारों के लिए इसका उपयोग किया जाता है। क्या इसे बिना किसी कुंजी के कोड में संसाधन में जोड़ने का कोई तरीका है या क्या कोई तरीका है कि मैं एक कुंजी का उपयोग कर सकता हूं और अभी भी यह सभी FieldPropertyInfo प्रकारों पर उपयोग किया गया है?

यहाँ मैं सी # में अब तक किया गया है:

HierarchicalDataTemplate fieldPropertyTemplate = new HierarchicalDataTemplate("FieldProperyInfo"); 

fieldPropertyTemplate.ItemsSource = new Binding("Value.Values"); 

this.Resources.Add(null, fieldPropertyTemplate); 

जाहिर है, ResourceDictionary के लिए एक संसाधन कुंजी अशक्त काम नहीं करता जोड़ने।

उत्तर

8

प्रकार है कि आप टेम्पलेट कुंजी के रूप में लागू करना चाहते हैं का उपयोग करें:

HierarchicalDataTemplate fieldPropertyTemplate = new 
    HierarchicalDataTemplate("FieldProperyInfo"); 

fieldPropertyTemplate.SetBinding(
    HierarchialDataTemplate.ItemSourceProperty, 
    new Binding("Value.Values"); 
this.Resources.Add(FieldPropertyInfo.GetType(), fieldPropertyTemplate); 

कारण अपने कोड नहीं कर रहा था काम कर रहा था अपने वास्तव में बंधन की स्थापना नहीं कर रहे थे। आपको उस बाध्यकारी बाध्यकारी संपत्ति के साथ सेटबाइंडिंग को कॉल करने की आवश्यकता है।

0

प्रकार है कि आप टेम्पलेट कुंजी के रूप में लागू करना चाहते हैं का उपयोग करें:

this.Resources.Add(FieldPropertyInfo.GetType(), fieldPropertyTemplate); 

अपने टेम्पलेट के साथ जैसा कि ऊपर आप एक प्रकार प्रदान करते हैं। आपको या तो एक नाम या एक प्रकार प्रदान करना होगा।

+0

हालांकि यह चलता है, टेम्पलेट का उपयोग TreeView द्वारा नहीं किया जा रहा है। संसाधन कुंजी के बारे में कुछ ऐसा लगता है जो इसे इस्तेमाल होने से रोक रहा है। –

+0

@ ओरियन: तो आपने मेरा जवाब देखा, और मेरी प्रतिलिपि बनाने के लिए पूरी तरह से संपादित किया? वास्तव में उत्तम दर्जे का ... –

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