【问题标题】:Binding pivotitem content in WP8.1在 WP8.1 中绑定 pivotitem 内容
【发布时间】:2015-02-03 21:18:01
【问题描述】:

在我的 mainpage.xaml 中,我有一个枢轴控件:

<Pivot x:Name="Pivot" 
  ItemsSource="{Binding PivotItems}" 
  ItemTemplate="{StaticResource PivotItemTemplate}">
</Pivot>

将它的项目绑定到我的视图模型上的 PivotsItems 属性。枢轴项显示正确,但我无法绑定枢轴项的内容。

我的数据模板看起来像:

<DataTemplate x:Key="PivotItemTemplate">
    <PivotItem>
        <TextBlock Text="Test"></TextBlock>
    </PivotItem>
</DataTemplate>

但没有任何内容显示在任何数据透视项中。

我不想做的是绑定枢轴项(有效),但为每个枢轴项显示一个单独的过滤器。在此示例中,我只想在每个数据透视项中显示一个 TextBlock。

已解决:

我在页面的pivot控件上定义了itemtemplate,而在vm中填充列表时我必须添加它:

PivotItems.Add(new PivotItem { Header = item.Key, ContentTemplate = App.Current.Resources["PivotItemTemplate"] as DataTemplate });

【问题讨论】:

    标签: windows-phone-8.1 winrt-xaml


    【解决方案1】:

    Pivot 自动将其项目包装到 PivotItems 中(就像您不将 ListViewItem 添加到 ListViews ItemsTemplate 中一样)。只需将您的内容放入 DataTemplate。

    <DataTemplate x:Key="PivotItemTemplate">
        <TextBlock Text="Test"></TextBlock>
    </DataTemplate>
    

    标头默认为 PivotItem 的 DataContext(所以您的列表项)。如果你想让它显示某个属性,你也必须设置 HeaderTemplate:

    <DataTemplate>
        <TextBlock Text="{Binding MyProperty}" />
    </DataTemplate>
    

    如果您只是将其保留为没有其他属性的 TextBlock,则默认样式将完美应用。

    【讨论】:

    • Tnx,但仍然得到空的数据透视项。标题显示正确。在这个例子中,我希望每个数据透视项都有相同的文本块。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多