मैं डेटा टेम्पलेट का उपयोग कर एक आइटम (संग्रह में निहित नहीं) प्रदर्शित करने की कोशिश कर रहा हूं। यहां तक कि मुझे अब तक क्या मिला है, जो कुछ भी प्रदर्शित नहीं कर रहा है। ListBox
के साथ एक खाली सूची बॉक्स प्रदर्शित करता है (इसलिए मुझे पता है कि तत्व वहां है)।मैं Silverlight में DataTemplate का उपयोग करके एक आइटम कैसे प्रदर्शित करूं?
<ItemsControl
ItemsSource="{Binding Session}"
ItemTemplate="{StaticResource SessionHeaderDataTemplate}"
/>
Session
एक ही वस्तु है। मैं डेटा टेम्पलेट का उपयोग करना चाहता हूं क्योंकि मैं अपने ऐप में कहीं और जानकारी प्रदर्शित कर रहा हूं और प्रस्तुति शैली को संसाधन के रूप में परिभाषित करना चाहता था ताकि मैं इसे एक ही स्थान पर अपडेट कर सकूं।
कोई विचार, या क्या मुझे अपने व्यूमोडेल में 1-तत्व संग्रह बनाना चाहिए और उसमें बाध्य होना चाहिए?
संपादित करें: यह वही है जो मैंने किया है, हालांकि नीचे दिया गया जवाब भी एक समाधान है। मैं अपने DataTemplates
से काफी जुड़ा हुआ हूं, इसलिए इस तरह कुछ ऐसा करने में सहज महसूस नहीं हुआ जो किसी अन्य एक्सएएमएल फ़ाइल में धकेल गया।
XAML:
<ItemsControl
DataContext="{Binding}"
ItemsSource="{Binding Session_ListSource}"
ItemTemplate="{StaticResource SessionHeaderDataTemplate}" />
ViewModel:
private Session m_Session;
public Session Session
{
get { return m_Session; }
set
{
if (m_Session != value)
{
m_Session = value;
OnPropertyChanged("Session");
// Added these two lines
Session_ListSource.Clear();
Session_ListSource.Add(this.Session);
}
}
}
// Added this property.
private ObservableCollection<Session> m_Session_ListSource = new ObservableCollection<Session>();
public ObservableCollection<Session> Session_ListSource
{
get { return m_Session_ListSource; }
set
{
if (m_Session_ListSource != value)
{
m_Session_ListSource = value;
OnPropertyChanged("Session_ListSource");
}
}
}
बिल्कुल मैं क्या कर रहा था! – geofftnz
उस बारे में नहीं सोचा था, अच्छा – mattmanser
उपयोगकर्ता नियंत्रण बनाने के साथ सहमत नहीं है। यह काम करता है, और UserControl से बहुत आसान है। –