2013-05-01 117 views
1

我正在使用GroupedItemsPage.xaml。我已將項目源設置爲「組」列表,其中「組」是我的自定義類,其中顯示不同的組以及其中的項目。我的問題是,我想爲每個組添加一個「添加」按鈕,以便每次加載組時,都會顯示「添加」按鈕,而不管組中是否包含項目。 enter image description here 第一張圖片是我希望我的羣組在添加一些項目後的樣子。第二個圖像是我希望我的小組在未添加任何項目時查看。我如何繼續?我正在使用以下網格視圖樣式。gridview中的默認按鈕

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

回答

0

通常,GridView綁定到一個ViewModel集合。大多數人通常爲其集合的每個組添加一個「空/空」ViewModel,並使GridView交換模板以用於使用ItemTemplateSelector呈現該ViewModel。

查看SO問題WinRT gridview Add tile作爲參考。這裏有一個很好的示例實現。

這裏也是一個視頻,它展示了這個概念在14:23開始的行動中進入視頻。 http://channel9.msdn.com/Series/Migrating-apps-from-Windows-Phone-to-Windows-8/Binding-the-Interface-in-Windows-Store-apps

+0

Thanx :)那正是我所期待的!我昨天通過向DefaultViewModel添加了一個額外的元素完成了這項任務,但是這個解決方案要好得多。現在就試試吧:) – Vanya 2013-05-02 05:45:38