来自同一来源的数据显示在数据透视表 header 中,但不显示在数据透视表项目模板中

data from the same source is displayed in the pivot header but not in the pivot item template

我正在将数据绑定到 UWP 中的数据透视元素。数据显示在 header 模板中,但是当我尝试在项目模板中显示相同的 header 数据时,它没有显示。为什么会这样??此外,网格视图外的项目模板中显示了相同的数据。

  <Pivot x:Name="Pivot1" ItemsSource="{Binding Store_Product_x}" SelectionChanged="Pivot1_SelectionChanged">
                <Pivot.HeaderTemplate>
                    <DataTemplate >
                        <TextBlock Text="{Binding Course_Header}"/>
                    </DataTemplate>
                </Pivot.HeaderTemplate>
                <Pivot.ItemTemplate>
                    <DataTemplate>
                        <!--<TextBlock Text="{Binding Course_Header}"/>-->
                        <GridView ItemsSource="{Binding Store_Product_x}">
                            <GridView.ItemTemplate>
                                <DataTemplate>
                                    <TextBlock Text="{Binding Course_Header}"/>
                                </DataTemplate>
                            </GridView.ItemTemplate>
                        </GridView>
                    </DataTemplate>
                </Pivot.ItemTemplate>
            </Pivot>

对于Pivot,一个PivotHeader对应一个PivotItem。在你的代码中,一个 PivotItem 也对应一个 GridView。如果上面的代码可以运行满足你的要求,那么GridView在每个PivotItem下只有一个,值和PivotHeader一样,那为什么我们需要 GridView?

例如,项目源 Store_Product_x 有两条记录,您绑定到 Pivot。所以 Pivot 将有两个显示 headers 的项目。第一项是 Store_Product_x 的绑定记录 1,第二项是 Store_Product_x 的绑定记录 2。同时,在每个项目下都有一个 GridView。第一个 GridView 与第一个项目(记录 1)具有相同的来源,它如何绑定包含记录 1 的 Store_Product_x

请明确你代码中的PivotItemGridViewItems是一对多的关系。你上面的代码显然是错误的。请参考我在您之前的线程中提到的嵌套绑定。

如果你想不出一个合适的结构来满足你的要求,你可以考虑改变控件。