所以我想用静态列名创建一个像GridView控件这样的表。我可以动态地添加我的网格列或行,没有问题通过ItemTemplate。现在的问题是,当我尝试向我的GridView添加一个带有columndefinitions的静态网格时,我看不到它。你知道为什么吗?
这是我的xaml代码:(未标记的网格被标记)
<GridView Margin="10" Name="GridViewAllgemein" HorizontalAlignment="Center" VerticalAlignment="Center" ItemsSource="{x:Bind ausstattung}" BorderBrush="Black" IsTapEnabled="True" IsItemClickEnabled="True">
<Grid Background="Red" Height="50"> //cannot see this grid
<Grid.ColumnDefinitions> //cannot see this grid
<ColumnDefinition Width="200"/> //cannot see this grid
<ColumnDefinition Width="200"/> //cannot see this grid
<ColumnDefinition Width="200"/> //cannot see this grid
<ColumnDefinition Width="200"/> //cannot see this grid
</Grid.ColumnDefinitions> //cannot see this grid
<TextBlock Grid.Column="0" Text="Test"></TextBlock> //cannot see this grid
</Grid> //cannot see this grid
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:Ausstattung">
<Grid Background="{ThemeResource SystemControlBackgroundAccentBrush}" Height="40" Margin="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="200"/>
</Grid.ColumnDefinitions>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0" Foreground="White" FontSize="14" Text="{x:Bind Beschreibung}" TextWrapping="Wrap"/>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="1" Foreground="White" FontSize="14" Text="{x:Bind Ausgabedatum}" TextWrapping="Wrap"/>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="2" Foreground="White" FontSize="14" Text="{x:Bind Rückgabedatum}" TextWrapping="Wrap"/>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="3" Foreground="White" FontSize="14" Text="{x:Bind Anzahl}" TextWrapping="Wrap"/>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
这是结果here
答案 0 :(得分:3)
现在的问题是,当我尝试添加静态网格时 我的GridView的columndefinitions我看不到它。你知道为什么吗?
这是因为GridView是一个ItemsControl,它不能直接包含子元素。
它必须在Items集合中有项目才能显示 屏幕上的任何内容。要填充视图,您可以添加项目 直接到Items集合,或将ItemsSource属性设置为a 数据源。见here
正如@Ipsit Gaur在评论中指出的那样,在这种情况下,一个选项是在GridView之前将Grid与Header放在一起,因为GridView本身没有创建Header的语句。
顺便说一下。 telerik开源其UWP控件,在某些情况下,您可以免费使用它。他们有一个Grid control with a built in functionality for this。
Syncfusion还拥有与a similar control called SfDataGrid
类似的社区许可*我不打算宣传产品,我只列出了您可能用来解决问题的免费控件。