WinRT ControlTemplate ItemsPanel

Нов съм в WinRT и се опитвам да създам стандартен мрежов изглед, който има групово заглавие с няколко плочки под него. Това малко е лесно. Опитвам се да го модифицирам, така че под мрежата от плочки да мога също да добавя долен колонтитул, използвайки стила на контейнерите:

    <GridView
        x:Name="itemGridView"
        AutomationProperties.AutomationId="ItemGridView"
        AutomationProperties.Name="Grouped Items"
        Margin="116,0,40,46"
        ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
        ItemTemplate="{StaticResource Project200x200ItemTemplate}"                
        SelectionMode="None"
        IsItemClickEnabled="True"
        ItemClick="ItemView_ItemClick">

        <GridView.ItemsPanel>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>

        <GridView.GroupStyle>
            <GroupStyle>
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <Grid Margin="1,0,0,6">
                            <Button
                                AutomationProperties.Name="Group Title"
                                Content="{Binding Name}"
                                Click="Header_Click"
                                Style="{StaticResource TextButtonStyle}" 
                                FontWeight="{Binding IsSelected, ConverterParameter=FontWeight, Converter={StaticResource BooleanToFontWeightConverter}}"
                               />
                        </Grid>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
                <GroupStyle.Panel>                           
                    <ItemsPanelTemplate>
                        <VariableSizedWrapGrid Background="Red"  Orientation="Vertical" Margin="0,0,40,0" />
                    </ItemsPanelTemplate>
                </GroupStyle.Panel>

                <GroupStyle.ContainerStyle>
                    <Style TargetType="GroupItem">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate>
                                    <StackPanel>
                                        <ContentPresenter/>
                                        <ItemsPresenter/>
                                        <TextBlock Text="*** End of group ***"/>
                                    </StackPanel>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </GroupStyle.ContainerStyle>

            </GroupStyle>
        </GridView.GroupStyle>               
    </GridView>

Това почти работи, но след добавяне на стила на контейнера, мрежата от плочки вече не се показва... заглавката на групата и текстовият блок „Край на групата“ се показват, но загубих решетката с плочки.

Може ли някой да забележи какво правя погрешно...?


person user1427149    schedule 30.05.2012    source източник


Отговори (1)


Какво правите грешно? Заменете VirtualizingStackPanel с неговия кореспондент StackPanel и всичко ще работи добре или ще се премести на Windows7 (проблемът възниква на Vista). между другото виртуализацията не работи върху йерархични обекти като TreeView или DataGrid, които използват групиране (GroupStyle). Разгледайте това.

person marius    schedule 12.06.2012