UWP - 添加 header 行到我的 gridview
UWP - add a header row to to my gridview
我是通用 Windows 平台应用程序的新手,我正努力在 XAML 中设计 form/page。
我设法创建了一个绑定到包含数据的 class 的 GridView,这些数据都运行良好,但我不知道如何将 headers 添加到我的列中。
在添加绑定数据行之前是否需要在顶部添加一行?
任何帮助都会很棒。
XAML代码:
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="100" />
</Grid.RowDefinitions>
<GridView ItemsSource="{x:Bind data}" IsItemClickEnabled="True">
<GridView.ItemTemplate>
<DataTemplate x:DataType="local:DataStructure">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<TextBlock FontSize="18" Text="{x:Bind ItemNumber}" HorizontalAlignment="Right" Margin="0,0,20,0" ></TextBlock>
<TextBlock FontSize="18" Text="{x:Bind ItemDetails}" HorizontalAlignment="Right"></TextBlock>
<CheckBox IsChecked="{x:Bind YesNo}"></CheckBox>
<CheckBox IsChecked="{x:Bind NotApplicable}"></CheckBox>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
<TextBlock Grid.Row="1" Name="ResultTextBlock" FontSize="24" Foreground="Red" FontWeight="Bold" />
</Grid>
您是否尝试过在 Header 属性 中添加网格?
<GridView>
<GridView.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Header 1" Grid.Column="0"/>
<TextBlock Text="Header 2" Grid.Column="1"/>
</Grid>
</GridView.Header>
<GridView.Items>
<GridViewItem>
<TextBlock Text="Item 1"/>
</GridViewItem>
<GridViewItem>
<TextBlock Text="Item 2"/>
</GridViewItem>
</GridView.Items>
</GridView>
当然,您需要做一些工作才能使 headers 列与项目对齐,但这可能是一种方法。查看 documentation 以获取其他有用的属性,例如 HeaderTemplate
.
我是通用 Windows 平台应用程序的新手,我正努力在 XAML 中设计 form/page。
我设法创建了一个绑定到包含数据的 class 的 GridView,这些数据都运行良好,但我不知道如何将 headers 添加到我的列中。
在添加绑定数据行之前是否需要在顶部添加一行?
任何帮助都会很棒。
XAML代码:
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="100" />
</Grid.RowDefinitions>
<GridView ItemsSource="{x:Bind data}" IsItemClickEnabled="True">
<GridView.ItemTemplate>
<DataTemplate x:DataType="local:DataStructure">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<TextBlock FontSize="18" Text="{x:Bind ItemNumber}" HorizontalAlignment="Right" Margin="0,0,20,0" ></TextBlock>
<TextBlock FontSize="18" Text="{x:Bind ItemDetails}" HorizontalAlignment="Right"></TextBlock>
<CheckBox IsChecked="{x:Bind YesNo}"></CheckBox>
<CheckBox IsChecked="{x:Bind NotApplicable}"></CheckBox>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
<TextBlock Grid.Row="1" Name="ResultTextBlock" FontSize="24" Foreground="Red" FontWeight="Bold" />
</Grid>
您是否尝试过在 Header 属性 中添加网格?
<GridView>
<GridView.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Header 1" Grid.Column="0"/>
<TextBlock Text="Header 2" Grid.Column="1"/>
</Grid>
</GridView.Header>
<GridView.Items>
<GridViewItem>
<TextBlock Text="Item 1"/>
</GridViewItem>
<GridViewItem>
<TextBlock Text="Item 2"/>
</GridViewItem>
</GridView.Items>
</GridView>
当然,您需要做一些工作才能使 headers 列与项目对齐,但这可能是一种方法。查看 documentation 以获取其他有用的属性,例如 HeaderTemplate
.