पर आधारित डेटा टेम्पलेट का स्वचालित रूप से उपयोग कैसे करें जब मैं ContentControl द्वारा उपयोग के लिए एकाधिक डेटा टेम्पलेट निर्दिष्ट करने का प्रयास करता हूं ताकि सही एक (प्रकार के आधार पर) का उपयोग किया जा सके, मैं सामग्री के साथ समाप्त होता हूं जो कि सामग्री है ToString() मान। जब TypeAViewModel का एक वृक्ष नोड CurrentlySelectedTreeViewModel द्वारा दिया जाता हैContentControl की वर्तमान सामग्री के डेटाटाइप
<ContentControl DataContext="{Binding MyTreeRootViewModels}" Content="{Binding /, Path=CurrentlySelectedTreeViewModel}">
<ContentControl.Resources>
<DataTemplate DataType="x:Type vm:TypeAViewModel">
<StackPanel>
<local:TypeAUserControl />
</StackPanel>
</DataTemplate>
<DataTemplate DataType="x:Type vm:TypeBViewModel">
<StackPanel>
<local:TypeBUserControl />
</StackPanel>
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
उपरोक्त उदाहरण मैं "MyApp.ViewModel.TypeAViewModel" देखे जाने में दिखाया गया है। मैं अपने TypeAViewModelUserControl देखने की उम्मीद करता हूं।
मैंने अपने डेटा नियंत्रणों में से एक में एक < टेक्स्टब्लॉक टेक्स्ट = "परीक्षण"/> तत्व डालने का प्रयास किया है ताकि यह देखने के लिए कि समस्या मेरे उपयोगकर्ता नियंत्रण से संबंधित है या नहीं। वही परिणाम
कोई विचार क्या मैं गलत कर रहा हूं?
(वैसे, वर्तमान में चयनित TreeViewModel एक ऐसी संपत्ति है जो वर्तमान में मेरे वृक्षदृश्य में चयनित नोड लौटाती है। ऐसा लगता है कि यह पेड़ में नोड्स का चयन करता है, नोड के लिए सही प्रकार का नाम ContentControl दिखाई देता है)।
एक ही काम करने की कोशिश कर रहा है; मेरी समस्या यह थी कि मेरे पास 'ContentControl.Resources' में मेरा 'डेटा टेम्पलेट्स' नहीं था। आपका उदाहरण मेरा समाधान था! :) – mbmcavoy