Горизонтальная прокрутка WPF Datagrid только с данными заголовка
У меня есть WPF
Datagrid
На начальном этапе я назначу заголовок 100 столбцов Datagrid
, но я не могу прокрутить его по горизонтали, чтобы просмотреть все заголовки столбцов.
DataGrid
не имеет рядов, ItemSource
нулевой. Как добиться горизонтальной прокрутки, когда у меня есть только заголовки столбцов (без строк).
Я связал ItemSource
в DataTable, который имеет только заголовок столбца и не содержит строк.
Как я могу прокрутить в этом сценарии.
4 ответа
Как сказал ArsenMkrt, это невозможно. Но я думаю, что вы можете добавить строку к вашему DataTable
но после этого вы можете установить его соответствующий DatagridRow
Видимость быть скрытым.
Когда ваш DataTable
заполняется фактическими данными, просто очистите DataTable.Rows.
Вот обходной путь для этой проблемы, который работал для меня: просто поместите 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>
К сожалению, это невозможно при использовании стиля по умолчанию DataGrid, вам нужно переопределить шаблон и создать свою собственную сетку, выведенную из основной. Здесь вы можете найти более подробную информацию.
Вы не Вы должны иметь ряд.
Измените ваш ItemsSource, чтобы не по умолчанию на ноль.
Если вы разрешаете добавлять строку, вы можете по умолчанию использовать пустой список.
Если вы не разрешаете добавлять строки, вам нужно по умолчанию список из одного элемента.
List<object> olist = new List<object>();
olist.add(new object());