Hi i have a ListView that binds to a collection. I set the height of the ListView to auto for it to take up all the space in the region. However there is not scrollbar after i set the height to auto. If i give it a height then the scrollbar would show up.
the markup is pretty much like the following
<Grid>
<StackPanel>
<Expander>
<DataGrid>
<Expander>
<ListView>
I have a hunch that your ListView
is inside a panel that allows it to expand vertically without limit.
If you put a ListView
inside a StackPanel
, for example, the ListView
's height can exceed the height of the StackPanel
. The ListView
has increased its height to show all its items, as far as it's concerned, thus no scrollbar.
However, if you change that StackPanel
to a Grid
, where controls automatically try to fit themselves inside that area, the ListView
will automatically have a scrollbar when it contains more items than it can display.
This will probably be solved most simply by adjusting your layout that contains the ListView
.
Instead of setting
<RowDefinition Height="auto"/>
set:
<RowDefinition Height="1*"/>
Why should it show a scrollbar if there is nothing to scroll?
If you want to override any default behavior you can set ScrollViewer.VerticalScrollBarVisibility="Visible"
on the ListBox.