如何显示LongListSelector的标头

时间:2014-03-06 03:43:16

标签: c# xaml windows-phone-8 windows-phone longlistselector

这是我的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有一个值但没有出现(项目工作正常并且出现了一个项目列表)

为什么标题为空?感谢。

3 个答案:

答案 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 7How 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>