我在 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>