【问题标题】:horizontal scrollbar not showing on datagrid when data is empty and headers do not fit on screen当数据为空且标题不适合屏幕时,数据网格上不显示水平滚动条
【发布时间】:2015-10-27 13:39:26
【问题描述】:

我尝试了以下方法:

ScrollViewer.CanContentScroll="True"
ScrollViewer.HorizontalScrollBarVisibility="Visible"

但它似乎不起作用。

【问题讨论】:

  • 我可以假设你的意思是DataGridView吗?在这种情况下,您不需要任何滚动查看器,因为它会根据需要自动添加滚动条
  • @Takarii 我认为@Ankita 的意思是DataGrid,当没有内容但标题不适合网格时,网格确实不会显示滚动条。除了您的评论,我也不知道为什么会有 ScrollViewer ..
  • 一个快速的“解决方法”是将IsReadOnly 属性设置为False,因为这样您的DataGrid 中总是有一个空行可供编辑
  • @Jens 有没有办法让滚动条查看网格中没有数据的标题?
  • 在这种情况下,您需要向我们展示更多代码

标签: c# xaml


【解决方案1】:

一定有可能做到,因为Extended WPF Toolkit做到了!


假设您有例如这个类:

public class ExampleClass
{
    public int LongPropertyNameA;
    public int LongPropertyNameB;
    public int LongPropertyNameC;
    public int LongPropertyNameD;
    public int LongPropertyNameE;
    public int LongPropertyNameF;
}

正常的做法是这样的:
标题是隐藏的。 XAML 代码看起来例如像这样:

<busGeneratorMvvm:CustomDataGrid ItemsSource="{Binding YourData}" IsReadOnly="True" />

当您使用 WPT Toolkit DataGrid 库(称为 Xceed.Wpf.DataGrid.dll)时,网格看起来像这样,带有您想要的滚动条:
XAML 代码看起来例如像这样:

<xcdg:DataGridControl ItemsSource="{Binding YourData}" >

其中xcdg 是使用此 XAML 代码在 Window 标记中定义的命名空间:

<Window ...
        xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
        ...
    >

结论:
如果你想很容易下载 Xceed WPF 工具包并使用DataGridControl

  • 从网站下载 .dll(在互联网上搜索免费版本)
  • 将 .dll 添加到项目的引用中
  • 使用并享受DataGridControl

希望对你有帮助!

【讨论】:

    【解决方案2】:

    以下解决方案将起作用。由于列表框宽度设置为数据网格宽度滚动条将可见。

    <ScrollViewer HorizontalScrollBarVisibility="Auto" CanContentScroll="True">
                <Grid>
                    <ListBox Width="{Binding ElementName=myGrid,Path=ActualWidth}"></ListBox>
                    <DataGrid Name="myGrid"></DataGrid>
                </Grid>
    
            </ScrollViewer>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-06
      • 2013-06-07
      • 2016-03-04
      • 1970-01-01
      相关资源
      最近更新 更多