2017-02-01 1 views
1

일부 데이터를 표시하는 GridView가 있습니다. 각 GridView 항목은 런타임 중에 증가하는 ListView입니다. GridView도 증가하고 싶습니다. 그러나 GridView 항목 안에 스크롤바 만 보여주고 있습니다. 하나의 추가 요구 사항은 각 GridView 항목이 항목의 상단에 정렬되어야한다는 것입니다.Gridview의 UWP Listview가 증가하지 않습니다.

<GridView ItemsSource="{Binding}" ScrollViewer.VerticalScrollBarVisibility="Disabled" Width="1080"> 
<GridView.ItemTemplate> 
    <DataTemplate>      
     <ListView ItemsSource="{Binding ListData}" HorizontalAlignment="Center"> 
      <ListView.ItemTemplate> 
       <DataTemplate > 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="Auto"/> 
          <ColumnDefinition Width="Auto"/> 
          <ColumnDefinition Width="*"/> 
         </Grid.ColumnDefinitions> 
         <TextBlock Text="&#x1f382;" 
           FontSize="20" 
           Grid.Column="0" 
           Margin="0,0,10,10" 
           FontFamily="Sergoe UI" 
           Style="{StaticResource BasicTextBlock}"/> 
         <TextBlock Text="{Binding NameString, Converter={StaticResource DataBindingDebugConverter}}" 
           Grid.Column="2" 
           Margin="10,0,0,0" 
           FontSize="16" 
           Style="{StaticResource BasicTextBlock}"/> 
        </Grid> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
      <ListView.ItemContainerStyle> 
       <Style TargetType="ListViewItem"> 
        <Setter Property="Padding" Value="0"/> 
        <Setter Property="Margin" Value="0,0,0,0"/> 
        <Setter Property="VerticalContentAlignment" Value="Stretch"/> 
       </Style> 
      </ListView.ItemContainerStyle> 
     </ListView> 
    </DataTemplate> 
</GridView.ItemTemplate> 
<GridView.ItemContainerStyle> 
    <Style TargetType="GridViewItem"> 
     <Setter Property="Padding" Value="0"/> 
     <Setter Property="Margin" Value="0,20,0,0"/> 
     <Setter Property="Width" Value="360" /> 
    </Style> 
</GridView.ItemContainerStyle> 
</GridView> 
+0

은하지 마 (JustinXL의 힌트 기준)이다. 'ListView'를'GridView' 안에 넣는 것은 나쁜 생각입니다. 대신에'ItemsControl'을 사용하십시오. –

+1

@JustinXL ItemsControl은이를 완료하는 힌트였습니다. 감사! 방금 ​​알아 낸 것은 ListBox 및 ListView가 부모로부터받은 모든 공간을 더 이상 차지하지 않는다는 것입니다. 그리고 이것은 나의 문제였습니다. – Christoph

+0

ListView는 복잡하고 무거운 컨트롤입니다. 일반적으로 페이지에서 하나만 사용하십시오. :) –

답변

1

이 질문에 대한 정답은

<GridView ItemsSource="{Binding}" ScrollViewer.VerticalScrollBarVisibility="Disabled" Width="1080"> 
<GridView.ItemTemplate> 
    <DataTemplate> 
     <ItemsControl ItemsSource="{Binding ListData, Converter={StaticResource DataBindingDebugConverter}}" x:Name="BirthdayListView" HorizontalAlignment="Center" Margin="0,20,0,0"> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="Auto"/> 
          <ColumnDefinition Width="Auto"/> 
          <ColumnDefinition Width="*"/> 
         </Grid.ColumnDefinitions> 
         <TextBlock Text="&#x1f382;" 
            FontSize="16" 
            Grid.Column="0" 
            Margin="0,0,10,10" 
            FontFamily="Sergoe UI" 
            Style="{StaticResource BasicTextBlock}"/> 
         <TextBlock Text="{Binding NameString, Converter={StaticResource DataBindingDebugConverter}}" 
            Grid.Column="2" 
            Margin="10,0,0,0" 
            FontSize="16" 
            Style="{StaticResource BasicTextBlock}"/> 
        </Grid> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 
    </DataTemplate> 
</GridView.ItemTemplate> 
<GridView.ItemContainerStyle> 
    <Style TargetType="ContentControl"> 
     <Setter Property="Padding" Value="0"/> 
     <Setter Property="Margin" Value="0,20,0,0"/> 
     <Setter Property="Width" Value="360" /> 
     <Setter Property="VerticalContentAlignment" Value="Top" /> 
    </Style> 
</GridView.ItemContainerStyle> 
</GridView> 
관련 문제