3

GridView在 Windows 8 Metro 应用程序中使用分组,我有一个VariableSizedWrapGridin ItemsPanelTemplate,并且想要绑定该MaximumRowsOrColumns属性,但它没有正确绑定。

这是我的 XAML

<GridView  ItemsSource="{Binding Source={StaticResource groupeddata}}" >
    <GridView.ItemTemplate>
        <DataTemplate>
            <Grid Width="120" Height="150" >
                <!--some controls here binded correctly.-->
            </Grid>
        </DataTemplate>
    </GridView.ItemTemplate>
    <GridView.GroupStyle>
        <GroupStyle>
            <GroupStyle.HeaderTemplate>
                <DataTemplate>
                    <Grid Margin="1,0,0,6">
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding maxGridCoulmns}"></TextBlock>
                            <!--work ok here -->
                            <TextBlock   Foreground="Black" Padding="0,0,0,20" Text="{Binding headerText}"  />
                        </StackPanel>
                    </Grid>
                </DataTemplate>
            </GroupStyle.HeaderTemplate>
            <GroupStyle.Panel >
                <ItemsPanelTemplate>
                    <VariableSizedWrapGrid    Orientation="Horizontal"  MaximumRowsOrColumns="{Binding maxGridCoulmns}"  Margin="0,0,80,0"/>
                    <!--not binding  here -->                         
                </ItemsPanelTemplate>
            </GroupStyle.Panel>
        </GroupStyle>
    </GridView.GroupStyle>
</GridView>
4

1 回答 1

6

您必须将 DependencyProperty 强制转换为 ICollectionViewGroup 才能获得实际的组对象。

在代码中var actualGroup = (group as Windows.UI.Xaml.Data.ICollectionViewGroup).Group;- 在 XAML 中,您所要做的就是将前缀添加Group.到绑定路径。

因此,在您的 XAML 中,只需像这样编辑绑定:

<ItemsPanelTemplate>
    <VariableSizedWrapGrid
        Orientation="Horizontal"
        MaximumRowsOrColumns="{Binding Group.maxGridCoulmns}"
        Margin="0,0,80,0"/>
</ItemsPanelTemplate>
于 2012-08-29T04:27:11.997 回答