【问题标题】:WPF DataGrid Cannot Scroll even when there is a lot of data即使有大量数据,WPF DataGrid 也无法滚动
【发布时间】:2019-01-29 05:53:45
【问题描述】:

我有一个DataGrid,当我将数据加载到其中时,我无法向下滚动

这就是DataGrid 的样子

如您所见,底部有一些我看不到的行 即使当我尝试将突出显示放在下面时,我仍然看不到下面的行。

DataGrid 是从列表中自动生成的。我已经尝试设置VerticalScrollBarVisibility & HorizontalScrollBarVisibility,但我仍然看不到其他数据。

这是我的数据网格的 XAML 代码

<StackPanel Orientation="Vertical" Margin="0,0,0,0" Grid.Row="1">
                        <DataGrid
                            x:Name="dgvAttendance"

                            Margin="0,20"
                            CanUserSortColumns="True"
                            CanUserAddRows="False" SelectedIndex="0" AlternationCount="2" AutoGenerateColumns="True" SelectionMode="Single" EnableColumnVirtualization="True" IsReadOnly="True" ScrollViewer.CanContentScroll="False" CanUserReorderColumns="False" CanUserResizeColumns="False" HeadersVisibility="All" CanUserResizeRows="False" PreviewMouseWheel="DgvAttendance_PreviewMouseWheel" />

                        <Button
                            x:Name="btnExportExcel"
                            Style="{StaticResource MaterialDesignRaisedDarkButton}"
                            Width="110"
                            ToolTip="Resource name: MaterialDesignRaisedLightDarkButton" Margin="15,10" Content="Export File" HorizontalAlignment="Right" Click="BtnExportExcel_Click"  />
                    </StackPanel>

数据网格上还有一个我看不到的按钮

这是我加载数据网格的代码

public void Main()
        {

            actuals = NewActual(@"C:\Users\IT\Desktop\Sample\SampleActual.dat");
            emps = GetEmp();

            var final = (from t1 in actuals
                         join t2 in emps on t1.ID equals t2.ID
                         where t1.ID == t2.ID
                         orderby t2.ID
                         select new
                         {
                             t1.ID,
                             t2.In,
                             t1.ActualLog
                         });

            dgvAttendance.ItemsSource = final.ToList();
        }

任何想法为什么我无法向下滚动并看到DataGrid 下方的按钮?谢谢

【问题讨论】:

  • 您可以将 StackPanel 替换为 ScrollViewer 或将完整的 xaml 结构放入 ScrollViewer 元素中
  • @Polly 生病检查一下

标签: c# wpf list xaml wpfdatagrid


【解决方案1】:

根据波莉的建议

我刚刚用 ScrollViewer 包裹了 StackPanel,所以它看起来像这样

<ScrollViewer Grid.Row="1">
                        <StackPanel Orientation="Vertical" Margin="0,0,0,0" >

                        <DataGrid
                            x:Name="dgvAttendance"

                            Margin="0,20"
                            CanUserSortColumns="True"
                            CanUserAddRows="False" SelectedIndex="0" AlternationCount="2" AutoGenerateColumns="True" SelectionMode="Single" EnableColumnVirtualization="True" IsReadOnly="True" ScrollViewer.CanContentScroll="False" CanUserReorderColumns="False" CanUserResizeColumns="False" HeadersVisibility="All" CanUserResizeRows="False" PreviewMouseWheel="DgvAttendance_PreviewMouseWheel" >
                        </DataGrid>

                        <Button
                            x:Name="btnExportExcel"
                            Style="{StaticResource MaterialDesignRaisedDarkButton}"
                            Width="110"
                            ToolTip="Resource name: MaterialDesignRaisedLightDarkButton" Margin="15,10" Content="Export File" HorizontalAlignment="Right" Click="BtnExportExcel_Click"  />
                    </StackPanel>
                    <!-- Stack for Datagrid Ends Here -->
                    </ScrollViewer>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    • 2011-10-06
    • 1970-01-01
    相关资源
    最近更新 更多