gpt4 book ai didi

silverlight - 如何在 Silverlight 中使用 DataTemplate 显示单个项目?

转载 作者:行者123 更新时间:2023-12-03 21:15:24 25 4
gpt4 key购买 nike

我正在尝试使用 DataTemplate 显示单个项目(不包含在集合中)。这是我到目前为止所得到的,没有显示任何内容。更换ItemsControlListBox显示一个空的列表框(所以我知道元素在那里)。

        <ItemsControl
ItemsSource="{Binding Session}"
ItemTemplate="{StaticResource SessionHeaderDataTemplate}"
/>
Session是单个对象。我想使用 DataTemplate,因为我在我的应用程序的其他地方显示相同的信息,并且希望将演示样式定义为一种资源,以便我可以在一个地方更新它。

有什么想法,还是应该在我的 ViewModel 中创建一个 1 元素集合并绑定(bind)到它?

编辑:这就是我最终要做的,尽管下面的答案也是一个解决方案。我很喜欢我的 DataTemplates所以将这样的内容推送到另一个 XAML 文件时感觉不舒服。

XAML:
        <ItemsControl
DataContext="{Binding}"
ItemsSource="{Binding Session_ListSource}"
ItemTemplate="{StaticResource SessionHeaderDataTemplate}" />

View 模型:
    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");
}
}
}

最佳答案

坚持使用您的数据模板以获得简单的 View ,而无需创建另一个用户控件。使用 ContentControl 显示单个项目的 DataTemplate。

 <ContentControl 
ContentTemplate="{StaticResource SessionHeaderDataTemplate}"
Content="{Binding Path=Session}" />

关于silverlight - 如何在 Silverlight 中使用 DataTemplate 显示单个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/563252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com