ListView
уже делает это - у него есть внутренний ScrollViewer
, который прокручивает только элементы, а не заголовок.
Проблема в том, что ваш внешний ScrollViewer
сообщает своему дочернему элементу (DockPanel
), что он имеет доступное бесконечное пространство, и DockPanel
сообщает это своим дочерним элементам, поэтому ваш ListView
в итоге занимает столько пробел, поскольку он должен отображать все элементы, а внутренний ScrollViewer
не отображается.
Если вы уберете свой внешний ScrollViewer
, ListView
должен поднять, что у него ограниченное пространство, и появится внутренний ScrollViewer
.
Это, очевидно, повлияет на все остальное в вашем DockPanel
, поэтому я посмотрю, что произойдет, и оттуда.