XAML 窗口 8 地铁应用,绑定问题



我在 Windows 8 Metro 应用程序中使用分组GridView,我在 ItemsPanelTemplate 中有一个VariableSizedWrapGrid,并且想要绑定 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>

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

在 XAML 中var actualGroup = (group as Windows.UI.Xaml.Data.ICollectionViewGroup).Group;的代码中,只需将前缀Group.添加到绑定路径。

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

<ItemsPanelTemplate>
    <VariableSizedWrapGrid
        Orientation="Horizontal"
        MaximumRowsOrColumns="{Binding Group.maxGridCoulmns}"
        Margin="0,0,80,0"/>
</ItemsPanelTemplate>

最新更新