我正在嘗試使用DataTemplate顯示單個項目(不包含在集合中)。這是迄今爲止我所得到的,沒有任何顯示。替換ItemsControl
與ListBox
顯示一個空的列表框(所以我知道元素在那裏)。如何在Silverlight中使用DataTemplate顯示單個項目?
<ItemsControl
ItemsSource="{Binding Session}"
ItemTemplate="{StaticResource SessionHeaderDataTemplate}"
/>
Session
是一個單一的對象。我想使用DataTemplate,因爲我在應用程序的其他地方顯示了相同的信息,並且希望將展示樣式定義爲資源,以便我可以在一個位置更新它。
任何想法,或者我應該創建一個1元素集合在我的ViewModel並綁定到該?
編輯:這是我最終做的,雖然下面的答案也是一個解決方案。我很喜歡我的DataTemplates
,所以不喜歡這樣的東西推出到另一個XAML文件。
XAML:
<ItemsControl
DataContext="{Binding}"
ItemsSource="{Binding Session_ListSource}"
ItemTemplate="{StaticResource SessionHeaderDataTemplate}" />
視圖模型:
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 2009-07-21 21:55:43