网格和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>
任何想法?
注:
我已经看了一些其他类似问题的答案,但似乎没有一个是有效的…
我的主要想法是显示一个表,有一个固定的头,和可滚动的内容(通过绑定填充)-好的,还有一些东西在页面的顶部(除了表我的意思)
我猜问题是你可能应该使用父元素,如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"
以占用所有可用空间。我希望这是你想要达到的目标。