这是我的lls:
<phone:LongListSelector Name="lls" ItemsSource="{Binding Items}">
<phone:LongListSelector.ListHeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Title}" Foreground="Red" Margin="0,0,0,10"/>
</DataTemplate>
</phone:LongListSelector.ListHeaderTemplate>
<phone:LongListSelector.ListFooterTemplate>
<DataTemplate>
<TextBlock Text="this is a footer"/>
</DataTemplate>
</phone:LongListSelector.ListFooterTemplate>
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
...
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
和ViewModel:
public class BookViewModel : INotifyPropertyChanged
{
private string title;
public string Title
{
get
{
return title;
}
set
{
if (value != title)
{
title = value;
NotifyPropertyChanged("Title");
}
}
}
public ObservableCollection<AuthorViewModel> Items { get; set; }
}
在navigatedto中我得到并分配了页面的DataContext:
DataContext = book;
但问题是,LongListSelector中没有任何内容显示为标题。刚刚分配DataContext后我检查了并且Title有一个值但没有出现(项目工作正常并且出现了一个项目列表)
为什么标题为空?感谢。
答案 0 :(得分:1)
使用ListHeader
代替ListHeaderTemplate
进行绑定:
<phone:LongListSelector.ListHeader>
<TextBlock Text="{Binding Title}" Foreground="Red" Margin="0,0,0,10"/>
</phone:LongListSelector.ListHeader>
答案 1 :(得分:0)
LongListSelector control on Windows Phone 7和How to display data in a grouped list in LongListSelector for Windows Phone 8就如何使用长列表选择器提供了很好的示例。这对你很有帮助。
答案 2 :(得分:0)
为LongListSelector设置ElementName,为ListHeader设置DataContext的路径。
<phone:LongListSelector.ListHeaderTemplate>
<DataTemplate>
<TextBlock Text="{ElementName=lls,
Path=DataContext.Title}" Foreground="Red" Margin="0,0,0,10"/>
</DataTemplate>
</phone:LongListSelector.ListHeaderTemplate>