Как включить полосу прокрутки / прокрутку на сетке данных WPF - PullRequest
9 голосов
/ 10 августа 2010

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

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

1 Ответ

16 голосов
/ 10 августа 2010

Ладно, разобрался с этим ... Оказывается, мне даже не нужно было обматывать сетку данных вокруг ScrollViewer.Все, что мне нужно было сделать, это определить высоту для сетки данных (используя атрибут «Высота»), и полоса прокрутки сетки данных появляется при добавлении элементов, выходящих за пределы высоты.Очевидно, что когда высота не определена, она динамическая и расширяется по мере добавления новых элементов.

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

...