我在windows 8 metro应用程序中使用了分组GridView
,我在VariableSizedWrapGrid
中有一个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>
答案 0 :(得分: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>