क्या डेटा टेम्पलेट के अंदर संग्रहव्यू स्रोत का स्पष्ट रूप से उपयोग करना संभव है? आम तौर पर हम टेम्पलेट के साथ संसाधनों में संग्रहव्यूसोर्स डाल देंगे, लेकिन हमारा मॉडल इसकी अनुमति नहीं देता है क्योंकि संग्रहदृश्य स्रोत का 'स्रोत' पेड़ में इस स्तर पर डेटाकॉन्टेक्स्ट की एक संपत्ति है, जिसका अर्थ है कि एक उदाहरण होना आवश्यक है इस स्तर पर। संसाधनों की जड़ में इसे बाहर रखना मतलब होगा कि केवल एक उदाहरण था। हम बाहरी स्तर पर समूहिंग का भी उपयोग नहीं कर सकते हैं क्योंकि ये आइटम तब तक अस्तित्व में नहीं हैं जब तक कि आप इस पदानुक्रम से दूर नहीं हैं, और सभी भाई-बहनों को भी यह संपत्ति नहीं है। तो यह तार्किक रूप से समझ में आता है कि हम DataTemplate के भीतर संग्रह दृश्यवृत्ति को तत्काल बनाते हैं (इस उदाहरण में एक पदानुक्रमित डेटा टेम्पलेट, लेकिन यह अप्रासंगिक है।)क्या आप डेटा टेम्पलेट के अंदर संग्रहव्यूसोर्स का उपयोग कर सकते हैं?
विशेष रूप से, हम इस विशेष नोड स्तर पर एक विशिष्ट सॉर्टिंग की अनुमति देने की कोशिश कर रहे हैं। हमारा एकमात्र अन्य विकल्प व्यूमोडेल में स्वयं को सॉर्ट करना है, लेकिन यह दर्द हो जाता है क्योंकि हम ऑब्जर्जेबल कोलेक्शन का उपयोग कर रहे हैं जो स्वयं सॉर्टिंग का समर्थन नहीं करते हैं। दरअसल, इस विषय पर हमने जो भी लेख देखा है, उस स्थिति के लिए आपको कलेक्शन व्यूसोर्स का उपयोग करना चाहिए, इसलिए यह सवाल है।
उदाहरण के लिए, इस काम करता है ...
<HierarchicalDataTemplate x:Key="CategoryTemplate"
ItemTemplate="{StaticResource TreeViewSymbolTemplate}"
ItemsSource="{Binding Symbols}">
<TextBlock Text="{Binding Name}" FontWeight="Bold" />
</HierarchicalDataTemplate>
लेकिन यह नहीं है ...
<HierarchicalDataTemplate x:Key="CategoryTemplate"
ItemTemplate="{StaticResource TreeViewSymbolTemplate}">
<HierarchicalDataTemplate.ItemsSource>
<Binding>
<Binding.Source>
<CollectionViewSource Source="{Binding Symbols}" />
</Binding.Source>
</Binding>
</HierarchicalDataTemplate.ItemsSource>
<TextBlock Text="{Binding Name}" FontWeight="Bold" />
</HierarchicalDataTemplate>
है जैसे कि यह होगा मुझे लगता है, लेकिन ऐसा नहीं है। दोबारा, हम संग्रह टेम्पलेट को डेटा टेम्पलेट के समान स्तर पर नहीं डाल सकते हैं क्योंकि प्रत्येक टेम्पलेट के लिए एक उदाहरण होना आवश्यक है क्योंकि प्रत्येक के पास अपने स्वयं के आइटम हैं (हालांकि वे सभी सॉर्टिंग मानदंड साझा करेंगे।)
एम
वास्तव में यहाँ और अधिक उपयुक्त यह कर के मूल रास्ते का उत्तर प्राप्त करना चाहते हैं, या यहां तक कि अगर CollectionViewSource DataTemplate के संसाधन हिस्से के अंदर था। –
असल में, मुझे ऐसा करने का एक आसान तरीका मिला है कि मुझे वास्तव में पसंद है ... मैं सिर्फ कलेक्शन व्यूसोर्स को एक कनवर्टर में ले जाता हूं, और इसका उपयोग रिटर्न वैल्यू सेट करने के लिए करता हूं। अभी के लिए हम केवल बाध्यकारी समय पर 'नया' कर रहे हैं क्योंकि हमें बस इतना करना है, लेकिन तकनीकी रूप से हम पूर्व-हाइड्रेटेड लोगों को वापस कर सकते हैं जिनके संदर्भ में हमारे पास संदर्भ हैं। अगर तुम मुझसे पूछो और एक चैंप की तरह काम करता है तो बहुत डरावना! – MarqueIV
मैं उसमें देख लूंगा। धन्यवाद। –