1

GroupedItemsPage.xaml を使用しています。項目ソースをグループのリストに設定しました。ここで、「グループ」は、項目を含むさまざまなグループを表示するカスタム クラスです。私の問題は、各グループに「追加」ボタンを追加して、グループが読み込まれるたびに、グループにアイテムがあるかどうかに関係なく「追加」ボタンが表示されるようにすることです。ここに画像の説明を入力 最初の画像は、いくつかのアイテムを追加した後のグループの外観です。2 番目の画像は、アイテムが追加されていないときのグループの外観です。続行するにはどうすればよいですか?次のグリッド ビュー スタイルを使用しています。

 <Style TargetType="GridView" x:Key="GridViewStyle">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="GridView">
                    <Border BorderBrush="{TemplateBinding BorderBrush}"
                        BorderThickness="{TemplateBinding BorderThickness}"
                        Background="{TemplateBinding Background}">
                        <ScrollViewer x:Name="ScrollViewer"
                                      TabNavigation="{TemplateBinding TabNavigation}"
                                      HorizontalScrollMode="{TemplateBinding ScrollViewer.HorizontalScrollMode}"
                                      HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"
                                      IsHorizontalScrollChainingEnabled="{TemplateBinding ScrollViewer.IsHorizontalScrollChainingEnabled}"
                                      VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}"
                                      VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}"
                                      IsVerticalScrollChainingEnabled="{TemplateBinding ScrollViewer.IsVerticalScrollChainingEnabled}"
                                      IsHorizontalRailEnabled="{TemplateBinding ScrollViewer.IsHorizontalRailEnabled}"
                                      IsVerticalRailEnabled="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}"
                                      ZoomMode="{TemplateBinding ScrollViewer.ZoomMode}"
                                      IsDeferredScrollingEnabled="{TemplateBinding ScrollViewer.IsDeferredScrollingEnabled}"
                                      BringIntoViewOnFocusChange="{TemplateBinding ScrollViewer.BringIntoViewOnFocusChange}">
                            <Grid Height="765" Width="2666" Margin="0">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*" />
                                </Grid.ColumnDefinitions>

                                <!-- Your custom buttons -->
                                <Grid x:Name="myGrid" HorizontalAlignment="Left" Width="1108" DataContext="{Binding RelativeSource={RelativeSource Self}}" >
                                    <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Margin="0,0,10,0">
                                        <Image Source="Assets/Untitled.png" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
                                    </Border>
                                    <StackPanel VerticalAlignment="Top"  Height="755" Margin="0,0,0,0">

                                        <TextBlock Text="RoleCenter"   Style="{StaticResource PageHeaderTextStyle}" Height="77" Margin="140,50,0,0"/>
                                        <TextBlock Text="{Binding x}" Style="{StaticResource PageHeaderTextStyle}" Height="77" Margin="140,300"/>
                                    </StackPanel>

                                </Grid>


                                <ItemsPresenter
                                            HeaderTemplate="{TemplateBinding HeaderTemplate}"
                                            Header="{TemplateBinding Header}"
                                            HeaderTransitions="{TemplateBinding HeaderTransitions}"

                                            Padding="{TemplateBinding Padding}" Margin="1113,10,244,0" />

                                <StackPanel Width="150" Height="150" Background="#006AC1" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,100,0">
                                    <Button x:Name="LoadMore" Content="+" Height="150" Click="Navigate"  Width="150" />


                                </StackPanel>
                            </Grid>
                        </ScrollViewer>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
4

1 に答える 1

0

通常、GridView は ViewModels のコレクションにバインドされます。ほとんどの人は通常、コレクションの各グループに「空白/空の」ViewModel を追加し、ItemTemplateSelector を使用してその ViewModel をレンダリングするために使用するテンプレートを GridView に交換させます。

SO question WinRT gridview Add tile as a point of reference を見てください。そこに示されている優れたサンプル実装があります。

ビデオの 14:23 から始まるこのコンセプトの動作を示すビデオもあります。http://channel9.msdn.com/Series/Migrating-apps-from-Windows-Phone-to-Windows-8/Binding-the-Interface-in-Windows-Store-apps

于 2013-05-01T16:53:30.093 に答える