के आधार पर एक डेटा टेम्पलेट का चयन मैं निम्नलिखित प्रकार की घोषणा की है:प्रकार
public interface ITest { }
public class ClassOne : ITest { }
public class ClassTwo : ITest { }
मेरी viewmodel में मैं घोषित कर रहा हूँ और निम्न संग्रह आरंभ:
public class ViewModel
{
public ObservableCollection<ITest> Coll { get; set; } = new ObservableCollection<ITest>
{
new ClassOne(),
new ClassTwo()
};
}
मेरे विचार मैं में मीटर की घोषणा निम्नलिखित ItemsControl
<ItemsControl ItemsSource="{Binding Coll}">
<ItemsControl.Resources>
<DataTemplate DataType="local:ClassOne">
<Rectangle Width="50" Height="50" Fill="Red" />
</DataTemplate>
<DataTemplate DataType="local:ClassTwo">
<Rectangle Width="50" Height="50" Fill="Blue" />
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
क्या मैं देखने की उम्मीद एक लाल एक ब्लू के बाद वर्ग है
क्या मैं गलत कर रहा हूँ: ई वर्ग, बजाय निम्नलिखित क्या मैं देख रहा हूँ है?
मैं आप वास्तव में [DataTemplateSelector] चाहने रहे हैं लगता है (https://msdn.microsoft.com/en-us/library/system.windows.controls.datatemplateselector%28v=vs.110%29.aspx) –
@ChrisW। सीधे उस लिंक से: _ "... एक डेटा टेम्पलेट चयनकर्ता बनाएं जब आपके पास एक ही प्रकार की ऑब्जेक्ट्स के लिए एक से अधिक डेटा टेम्पलेट हों और आप प्रत्येक डेटा ऑब्जेक्ट के गुणों के आधार पर आवेदन करने के लिए डेटा टेम्पलेट चुनने के लिए अपना तर्क देना चाहते हैं। * * ध्यान दें कि यदि आपके पास विभिन्न प्रकार की ऑब्जेक्ट्स हैं तो आप DataType प्रॉपर्टी को DataTemplate ** पर सेट कर सकते हैं। "_ – kskyriacou
क्षमा करें दोस्त, [ItemTemplateSelector] सोच रहा था (https://msdn.microsoft.com/en-us/library/ system.windows.controls.itemscontrol.itemtemplateselector% 28v = vs.110% 29.aspx), शायद मुझे यहां पर नहीं होना चाहिए, सर्दियों के बाद से पहला अच्छा दिन और मेरा दिमाग कहीं और है, मुझे नहीं लगता कि मैं भी वास्तव में पूरे सवाल lol देखा। वसंत बुखार, चीयर्स। –