【问题标题】:How to show a header for LongListSelector如何显示 LongListSelector 的标题
【发布时间】:2014-03-06 03:43:16
【问题描述】:

这是我的 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; }
}

在导航中,我获取并分配页面的 DataContext:

DataContext = book;

但问题是,LongListSelector 中没有任何内容显示为标题。就在分配 DataContext 之后,我检查了 Title 有一个值但没有出现(项目工作正常,出现项目列表)

为什么标题是空的?谢谢。

【问题讨论】:

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


    【解决方案1】:

    使用ListHeader 代替ListHeaderTemplate 进行绑定:

    <phone:LongListSelector.ListHeader>
        <TextBlock Text="{Binding Title}" Foreground="Red"  Margin="0,0,0,10"/>
    </phone:LongListSelector.ListHeader>
    

    【讨论】:

      【解决方案2】:

      LongListSelector control on Windows Phone 7How to display data in a grouped list in LongListSelector for Windows Phone 8 有很好的例子来说明如何使用长列表选择器。这对你很有帮助。

      【讨论】:

      • 谢谢。我知道如何使用它,问题是如何解决这个未知问题。
      • 我想要一个列表标题:)
      【解决方案3】:

      设置 LongListSelector 的 ElementName 和 ListHeader 的 DataContext 的 Path。

      <phone:LongListSelector.ListHeaderTemplate>
        <DataTemplate>
          <TextBlock Text="{ElementName=lls,
                     Path=DataContext.Title}" Foreground="Red"  Margin="0,0,0,10"/>
        </DataTemplate>
      </phone:LongListSelector.ListHeaderTemplate>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-02
        相关资源
        最近更新 更多