none
win8开发 gridview显示问题 RRS feed

  • 问题

  • ObservableCollection<MindItem> Groups = new ObservableCollection<MindItem>;

     this.DefaultViewModel["Groups"] = Groups;

    我将上面的对象绑定到gridview,下面是XAML代码

        //申明资源

          <CollectionViewSource
                x:Name="groupedItemsViewSource"
                Source="{Binding Groups}"
                ItemsPath="Items" />

        //绑定到gridview           

        <GridView Name="gridViewMain"
                    Margin="116,0,40,46"               

                   ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
                    SelectionMode="None"
                    IsItemClickEnabled="True">
                    <GridView.ItemTemplate>
                        <DataTemplate>
                        <Grid HorizontalAlignment="Left" Width="250" Height="250">                         
                                 <Border Background="{StaticResource ListViewItemPlaceholderRectBrush}">
                                    <Image  Source="{Binding Image}" Stretch="UniformToFill"/>
                                 </Border>
                                 <StackPanel VerticalAlignment="Bottom" Background="{StaticResource ListViewItemOverlayBackgroundBrush}">
                                    <TextBlock Text="{Binding Name}" Foreground="{StaticResource ListViewItemOverlayTextBrush}" Style="{StaticResource TitleTextStyle}" Height="60"  Margin="15,0,15,0"/>
                                    <TextBlock Text="{Binding Introduction}" Margin="15,0,15,0"></TextBlock>
                                    <TextBlock Text="{Binding CreateAt}" Foreground="{StaticResource ListViewItemOverlaySecondaryTextBrush}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap" Margin="15,0,15,10"/>
                                 </StackPanel>
                           </Grid>
                        </DataTemplate>          
                    </GridView.ItemTemplate>
                </GridView>

        使用上面的代码,gridview的Items分两行显示(就是上下上下,如下图),现在我想把第一行第一列的Item放大,占据4个Item的位置(第一行第一列,第一行第二列,第二行第一列,第二行第二列),其他item保持不变(上下排列)。左边大Item和其他小的Item中显示的格式也不一样,我感觉应该要把Items分为两组,第一个大的和后面小的,但是却不知道该怎么分,希望有人指点一下,谢谢了,在线等你~


    2012年6月19日 6:39

答案

全部回复

  • ObservableCollection<MindItem> Groups = new ObservableCollection<MindItem>;

     this.DefaultViewModel["Groups"] = Groups;

    我将上面的对象绑定到gridview,下面是XAML代码

        //申明资源

          <CollectionViewSource
                x:Name="groupedItemsViewSource"
                Source="{Binding Groups}"
                ItemsPath="Items" />

        //绑定到gridview           

        <GridView Name="gridViewMain"
                    Margin="116,0,40,46"               

                   ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
                    SelectionMode="None"
                    IsItemClickEnabled="True">
                    <GridView.ItemTemplate>
                        <DataTemplate>
                        <Grid HorizontalAlignment="Left" Width="250" Height="250">                         
                                 <Border Background="{StaticResource ListViewItemPlaceholderRectBrush}">
                                    <Image  Source="{Binding Image}" Stretch="UniformToFill"/>
                                 </Border>
                                 <StackPanel VerticalAlignment="Bottom" Background="{StaticResource ListViewItemOverlayBackgroundBrush}">
                                    <TextBlock Text="{Binding Name}" Foreground="{StaticResource ListViewItemOverlayTextBrush}" Style="{StaticResource TitleTextStyle}" Height="60"  Margin="15,0,15,0"/>
                                    <TextBlock Text="{Binding Introduction}" Margin="15,0,15,0"></TextBlock>
                                    <TextBlock Text="{Binding CreateAt}" Foreground="{StaticResource ListViewItemOverlaySecondaryTextBrush}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap" Margin="15,0,15,10"/>
                                 </StackPanel>
                           </Grid>
                        </DataTemplate>          
                    </GridView.ItemTemplate>
                </GridView>

        使用上面的代码,gridview的Items分两行显示(就是上下上下,如下图),现在我想把第一行第一列的Item放大,占据4个Item的位置(第一行第一列,第一行第二列,第二行第一列,第二行第二列),其他item保持不变(上下排列),现在不知道该怎么办,在线等,谢谢呀~

        

    2012年6月19日 6:34
  • 与我在 http://social.msdn.microsoft.com/Forums/zh-CN/metroappzhcn/thread/097e1712-28e2-4d23-a6c1-67deceef46bb 中所说的,你应该分成两块,左边专门显示你的较大的那个Item。

    或者你看看我这个帖子: http://social.msdn.microsoft.com/Forums/zh-CN/metroappzhcn/thread/aaeaee49-0110-489f-adb5-27fc3ec5174f/  通过使用  VariableSizedWrapGrid 作为你的ItemsPanel来解决。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年6月20日 8:58
    版主