网格和StackPanel的问题-绑定

本文关键字:绑定 问题 StackPanel 网格 | 更新日期: 2023-09-27 18:19:05

OK,我在StackPanel内正确使用ScrollViewer(包含ItemsControl)有问题。

问题是滚动的工作,然而:

  • 无论用户向下滚动多少,表的底线是不可见的
  • 当滚动是…"已释放",表弹出备份

<ScrollViewer Height="Auto">
    <ItemsControl ItemsSource="{Binding Items, Mode=TwoWay}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Grid VerticalAlignment="Top" Margin="0,0,0,0" x:Name="ResTable">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="0.10*"/>
                        <ColumnDefinition Width="0.30*" />
                        <ColumnDefinition Width="0.30*"/>
                        <ColumnDefinition Width="0.30*"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="*"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Column="0" Text="{Binding [num]}" HorizontalAlignment="Center" />
                    <TextBlock Grid.Column="1" Text="{Binding [A]}" HorizontalAlignment="Center" />
                    <TextBlock Grid.Column="2" Text="{Binding [B]}" HorizontalAlignment="Center" />
                    <TextBlock Grid.Column="3" Text="{Binding [C]}" HorizontalAlignment="Center" />
                </Grid>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</ScrollViewer>

任何想法?


注:

  • 我已经看了一些其他类似问题的答案,但似乎没有一个是有效的…

  • 我的主要想法是显示一个表,有一个固定的头,和可滚动的内容(通过绑定填充)-好的,还有一些东西在页面的顶部(除了表我的意思)

网格和StackPanel的问题-绑定

我猜问题是你可能应该使用父元素,如Grid而不是StackPanel,因为StackPanel有它的缺点,当用卷轴等调整子项目的大小。

<Grid>
<Grid.RowDefinitions>
   <RowDefinition Height="Auto"/>
   <RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- Put headers in Grid.Row="0" -->
<!-- Put Scrollviewer in Grid.Row="1" --> 
</Grid>

也可以从ScrollViewer中删除Height="Auto"属性,您可能希望为item使用VerticalAlignment="Stretch"以占用所有可用空间。我希望这是你想要达到的目标。