我有一个WPF
Datagrid
,在初始阶段我将分配 100 个列标题Datagrid
,但我无法水平滚动它来查看所有列标题。
DataGrid
没有任何行,ItemSource
为空。当我只有列标题(没有行)时,如何实现水平滚动。
我绑定ItemSource
到一个只有列标题而没有行的 DataTable。
在这种情况下如何滚动。
这是解决此问题的一种解决方法,对我有用:只需将DataGrid
a 放入 aScrollViewer
并制作 aDataTrigger
以将 the 设置为HorizontalScrollBarVisibility
if没有项目。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>
不幸的是,DataGrid 默认样式是不可能的,您必须覆盖模板并创建派生到主网格的自定义网格。在这里您可以找到更多详细信息。
正如 ArsenMkrt 所说,这是不可能的。但是,我认为您可以添加一行,DataTable
但之后,您可以将其对应DatagridRow
的可见性设置为隐藏。
当您DataTable
使用实际数据填充时,只需清除 DataTable.Rows。
你没有。你必须有一排。
将您的 ItemsSource 更改为不默认为 null。
如果允许添加行,则可以默认为空列表。
如果您不允许添加行,则需要默认为一个项目的列表。
List<object> olist = new List<object>();
olist.add(new object());