GridView和Grid之间的区别

6
有人能告诉我WPF XAML中GridView和Grid的区别吗?
示例图如下:enter image description here
3个回答

8
这里是UWP的详细信息。我认为WPF应该类似。 网格(Grid) - 用于定义布局、格式化或静态信息。这是几个可用的“布局面板”之一(其他包括: RelativePanel,StackPanel,VariableSizedWrapGrid和Canvas)。Grid没有ItemSource成员来通过绑定动态显示项目。Grid有Grid.RowGrid.Column附加属性(即可应用于其他控件)来在网格内定位它们。
示例代码:
<Grid x:Name="LayoutPanel1" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" 
      Margin="20"
      BorderBrush="{StaticResource Page_Brush}"
      BorderThickness="1 1 1 1">

    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition Height="44"/>
    </Grid.RowDefinitions>

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>

</Grid>

更多信息:Grid 类布局面板


GridView - 用于显示一组或集合的数据(即动态数量的项目)。另一个可用于显示一组或集合数据的控件是 ListView。其中一种使用方式是通过设置 ItemSource (即绑定)来实现。默认情况下,数据项在 GridView 中显示为其绑定到的数据对象的字符串表示形式。要指定 GridView 中显示项目的确切方式,您需要创建一个 DataTemplate 来定义用于显示单个项目的控件布局。布局中的控件可以绑定到数据对象的属性,或者内联定义内容。将 DataTemplate 分配给 GridView 的 ItemTemplate 属性。 DataTemplate 可以包含 Grid(或上面提到的任何其他布局面板),以指定单个项目的控件布局。

示例代码:

<GridView ItemsSource="{x:Bind MyItems}"
          IsItemClickEnabled="True"
          ItemClick="GridView_ItemClick"
          ItemTemplate="{StaticResource MyItemTemplate}"
          BorderBrush="{StaticResource MyItemBrush}" 
          BorderThickness="1 1 1 1"
          HorizontalAlignment="Stretch"
/>

更多信息:GridView类列表视图和网格视图列表视图和网格视图的指南


6

一个简单的解释如下:
网格
如果你只有一个项目,没有重复的子项设计,那么就使用网格。如果子项数量是固定的,则使用网格视图。
网格视图
如果你有一个像集合一样的重复设计,并且不知道可能存在的项目数,则应该使用网格视图。
你可以在 MSDN 论坛上找到更多详细信息。


1
据我所见,Grid 更像是一张表格, 每行包含相同数量的项目(每列一个),无论窗口的大小如何。
GridView 看起来像一张表格,但如果缩小窗口的宽度,一行中的项目将跳到下一行:
请参考以下图片: enter image description here enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接