Как включить полосу прокрутки / прокрутку в WPF Datagrid

У меня есть элемент управления DataGrid , который находится в контейнере макета Grid , и я не могу заставить работать автопрокрутку на самом DataGrid . Я могу обернуть DataGrid вокруг ScrollViewer и таким образом добавить полосу прокрутки, но автоматическая прокрутка не работает.

Итак, прямо сейчас, когда новые записи добавляются в DataGrid , DataGrid просто расширяется по вертикали. Я бы хотел, чтобы была включена вертикальная полоса прокрутки, позволяющая прокручивать элементы в DataGrid , когда добавляется больше элементов, чем может показать исходный вертикальный размер, вместо развертывания всей DataGrid . Конечно, должен быть простой способ сделать это.

9
задан Adi Lester 30 July 2012 в 12:45
поделиться

1 ответ

Ладно, с этим разобрался... Оказывается, мне даже не нужно было оборачивать datagrid вокруг ScrollViewer. Все, что мне нужно было сделать, это определить высоту для datagrid (используя атрибут "Height"), и полоса прокрутки datagrid появляется, когда добавляются элементы, превышающие высоту. По-видимому, когда высота не определена, она является динамической и расширяется по вертикали при добавлении новых элементов.

Еще одна вещь, которую следует добавить к этому, заключается в том, что в моей сетке данных у меня были определены детали ряда для каждого ряда, поэтому, когда несколько деталей ряда были развернуты, прокрутка была включена, но поведение полосы прокрутки было немного странным (как будто она не была плавной прокруткой), и для того, чтобы сделать прокрутку плавной, было добавлено следующее свойство сетки данных: ScrollViewer.CanContentScroll="False" (я предполагаю, что элемент управления datagrid является/наследуется от ScrollViewer), после чего прокрутка стала плавной и похожей на нормальное ожидаемое поведение прокрутки.

16
ответ дан 4 December 2019 в 12:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: