WPF Datagrid水平滚动,只有标题数据

时间:2012-11-30 18:03:11

标签: c# wpf datagrid

我有WPF Datagrid,在初始阶段我会为Datagrid分配100个列标题,但我无法水平滚动它以查看所有列标题。

DataGrid没有任何行,ItemSource为空。当我只有列标题(没有行)时,如何实现水平滚动。

我将ItemSource绑定到只有列标题但没有行的DataTable。

如何滚动此方案。

4 个答案:

答案 0 :(得分:7)

此问题的解决方法对我有用:只需将DataGrid放入ScrollViewer并设置DataTrigger即可设置HorizontalScrollBarVisibility ScrollViewer如果Visible没有项目,则{}}到DataGrid

<ScrollViewer VerticalScrollBarVisibility="Disabled">
    <ScrollViewer.Style>
        <Style TargetType="ScrollViewer">
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=dataGrid, Path=HasItems}" Value="False">
                    <Setter Property="HorizontalScrollBarVisibility" Value="Visible"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </ScrollViewer.Style>
    <DataGrid Name="dataGrid"/>
</ScrollViewer>

答案 1 :(得分:1)

不幸的是,使用DataGrid默认样式是不可能的,您必须覆盖模板并创建派生到主要模板的自定义网格。 here您可以找到更多详细信息。

答案 2 :(得分:0)

正如ArsenMkrt所说,这是不可能的。但是,我认为您可以在DataTable添加一行,但在此之后,您可以将其对应的DatagridRow的可见性设置为隐藏。

当您的DataTable填充实际数据时,只需清除DataTable.Rows。

答案 3 :(得分:-1)

你没有。你必须有一排。

将ItemsSource更改为默认为null。

如果您允许添加行,则可以默认为空列表。

如果您不允许添加行,则需要默认为一个项目的列表。

List<object> olist = new List<object>();
olist.add(new object());