2017-06-22 59 views
1

所以我想用静态列名创建一个类似GridView控件的表。我可以通过ItemTemplate动态添加我的网格列或行,没有任何问题。现在的问题是,当我尝试添加一个带有列定义的静态网格到我的GridView时,我看不到它。你知道为什么吗?带有静态列名的GridView表

这里是我的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> 

这是结果enter image description here

+0

为什么在GridView中使用Grid,如果您在层次结构中使用刚好在GridView上方的Grid,它是行不通的。 –

回答

3

现在的问题是,当我尝试添加静态网格与 columndefinitions我的GridView我看不到它。你知道为什么吗?

这是因为GridView是一个ItemsControl,它不能直接包含子元素。

它必须在其Items集合中包含项目,然后才能在屏幕上显示 任何内容。要填充视图,可以将项目 直接添加到Items集合,或者将ItemsSource属性设置为 数据源。见here

由于@Ipsit野牛在评论中指出,在这种情况下,一个选择是把网格与GridView控件之前的头,因为GridView控件本身不具有创建一个头contept。

Btw。 telerik开放了它的UWP控制,在某些情况下,你可以免费使用它。他们有Grid control with a built in functionality for this

Syncfusion还与a similar control called SfDataGrid

类似的社会许可*我并不想给产品做广告,我只是列出你可以潜在地使用来解决问题自由控制。

+0

非常好的答案谢谢你。我以前不知道这一点。你知道我可以如何将gridview上方的新网格的宽度绑定到gridview的宽度吗? –

+0

明白了,我只是把网格和gridview放在一个stackpanel中。感谢您的帮助 –

+0

太好了,我正在为此做一个示例,但在这种情况下,我可以跳过该工作...感谢接受! – gregkalapos