Xaml Gridview中的UWP Listview未增加

Xaml Gridview中的UWP Listview未增加,xaml,listview,gridview,uwp,Xaml,Listview,Gridview,Uwp,我有一个GridView来显示一些数据。每个GridView项都是一个ListView,它在运行时不断增加。 我希望GridView也能增加,但它只在GridView项中显示一个滚动条。 另一个要求是每个GridView项都应该在项的顶部对齐 <GridView ItemsSource="{Binding}" ScrollViewer.VerticalScrollBarVisibility="Disabled" Width="1080"> <GridView.ItemTempl

我有一个GridView来显示一些数据。每个GridView项都是一个ListView,它在运行时不断增加。 我希望GridView也能增加,但它只在GridView项中显示一个滚动条。 另一个要求是每个GridView项都应该在项的顶部对齐

<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>

这个问题的正确答案是(基于JustinXL的提示)



不要这样做。在
GridView
中放置
ListView
s是个坏主意。改为使用
ItemsControl
。@JustinXL ItemsControl是完成此操作的提示。谢谢我刚刚发现ListBox和ListView占用了它们从父级获得的所有可用空间,而不是更多。这是我的问题。是的,同时请记住ListView是一个复杂而沉重的控件。您通常只在页面上使用一个。:)我在这个话题上做得更深入了,但今天它不再起作用了。但是我也发现了原因:GridView项目的高度是基于第一个项目的,就像这里描述的那样:所以问题不是ListView,而是GridView本身。我需要根据一行中最大的项目设置gridView的高度。有什么想法吗?我将为此提出一个新问题。
<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>