在我的mainpage.xaml中,我有一个支点控件:
<Pivot x:Name="Pivot"
ItemsSource="{Binding PivotItems}"
ItemTemplate="{StaticResource PivotItemTemplate}">
</Pivot>
将其项目绑定到我的viewmodel上的 PivotsItems 属性。 pivotitems显示正确,但我无法绑定pivotitem的内容。
我的datatemplate看起来像:
<DataTemplate x:Key="PivotItemTemplate">
<PivotItem>
<TextBlock Text="Test"></TextBlock>
</PivotItem>
</DataTemplate>
但是没有任何内容显示在任何pivotitem中。
我要做的是绑定pivotitems(有效),但为每个pivotitem显示一个单独的过滤器。在这个例子中,我只想在每个pivotitem中显示一个TextBlock。
解决:
我在页面中的pivot控件上定义了itemtemplate,而在填充vm中的列表时我必须添加它:
PivotItems.Add(new PivotItem { Header = item.Key, ContentTemplate = App.Current.Resources["PivotItemTemplate"] as DataTemplate });
答案 0 :(得分:2)
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,则可以完美地应用默认样式。