You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF DataGrid绑定MySQL数据后垂直滚动条无法滚动

问题根因

DataGrid无法滚动的核心原因是你在XAML中给控件设置了IsHitTestVisible="False"属性。
该属性会禁用控件的所有命中测试逻辑,鼠标滚轮滚动、拖动滚动条滑块、点击等所有交互事件都无法传递到DataGrid内部的ScrollViewer元素,因此所有滚动操作都不会生效。你看到滚动条和滑块正常显示,只是布局渲染逻辑正常运行的结果,交互层已经被该属性完全拦截,和后端数据读取逻辑、ScrollViewer或StackPanel的配置没有关联。

修复方案

直接删除DataGrid标签内的IsHitTestVisible="False"属性即可,WPF中该属性的默认值为True,不需要额外显式声明。如果需要保留显式设置,将属性值改为True也可实现相同效果。
修改后的DataGrid核心代码示例:

<DataGrid x:Name="DataTable" Grid.Row="1" 
HeadersVisibility="None" Background="Transparent" 
VerticalScrollBarVisibility="Auto" MaxHeight="231" 
GridLinesVisibility="Horizontal" HorizontalGridLinesBrush="White"
HorizontalScrollBarVisibility="Disabled" RowBackground="Transparent"
AlternatingRowBackground="Transparent" CanUserResizeColumns="False"
CanUserAddRows="False" CanUserResizeRows="False" CanUserDeleteRows="False"
CanUserReorderColumns="False" CanUserSortColumns="False"
AutoGenerateColumns="False" IsReadOnly="True"
ItemsSource="{Binding }" Foreground="White" BorderBrush="{x:Null}"
FontWeight="Bold" FontSize="16">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Kürzel"  Binding="{Binding kuerzel}" Visibility="Collapsed" CanUserResize="False" />
        <DataGridTextColumn Header="Vorname" Width="152" Binding="{Binding firstname}" CanUserResize="False" />
        <DataGridTextColumn Header="Nachname" Width="152" Binding="{Binding lastname}" CanUserResize="False" />
        <DataGridTextColumn Header="Geburtstag" Binding="{Binding birthdate}" Visibility="Collapsed" CanUserResize="False" />
        <DataGridTextColumn Header="Arbeitsstunden" Width="152" Binding="{Binding timeWorked}" CanUserResize="False" />
    </DataGrid.Columns>
</DataGrid>

额外优化提示:你后端的FillGrid方法中,cnn.Close()是多余代码,using代码块会在作用域结束时自动释放并关闭数据库连接,不需要手动调用。

内容的提问来源于stack exchange,提问作者Jannes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 20:48:15