Я хочу создать средство прокрутки, которое отображает вертикальную полосу прокрутки независимо от того, есть ли у нее элементы для прокрутки вниз или нет. Делая это, я стремлюсь динамически извлекать больше данных из базы данных, когда пользователь прокручивает вниз. Данные хранятся в сетке данных (dgGrid) и оборачиваются средством просмотра прокрутки (svMain) (см. Ниже). Данные из базы данных извлекаются с использованием метода, который запускает событие ScrollViewer.ScrollChanged.
<ScrollViewer Grid.Row="0" VerticalScrollBarVisibility="Visible" DockPanel.Dock="Top" Name="svMain" cal:Message.Attach="[Event ScrollChanged] = [Action ScrollMaster($eventArgs)]">
<StackPanel>
<Grid Visibility="{Binding Path=IsFormView, Converter={StaticResource booleanToVisibilityConverter}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="200"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Horizontal">
<CheckBox IsChecked="{Binding MasterDTO.ActiveFlag, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<Label Content="Active"/>
</StackPanel>
<StackPanel Grid.Row="1" Grid.Column="0">
<con:MandatoryLabel Text="Country Id" />
<TextBox Text="{Binding MasterDTO.CountryId, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
<StackPanel Grid.Row="1" Grid.Column="1">
<con:MandatoryLabel Text="Currency"/>
<TextBox Text="{Binding MasterDTO.Currency, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
</Grid>
<!-- Grid View -->
<DockPanel Visibility="{Binding Path=IsGridView, Converter={StaticResource booleanToVisibilityConverter}}">
<DataGrid Name="dgGrid" Style="{StaticResource ReadOnlyDatagrid}" SelectedItem="{Binding Path=MasterDTO, Mode=TwoWay}" ItemsSource="{Binding MasterDTOs, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" cal:Message.Attach="[Event SelectionChanged] = [Action GridSelect]">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Active">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<controls:YesNoLabel Value="{Binding ActiveFlag}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Country Id" Binding="{Binding CountryId}"/>
<DataGridTextColumn Header="Currency" Binding="{Binding Currency}"/>
</DataGrid.Columns>
</DataGrid>
</DockPanel>
</StackPanel>
</ScrollViewer>
Проблема заключается в том, что, хотя я установил свойство VerticalScrollBarVisibility средства просмотра scrollviewer в видимое состояние (и вертикальная полоса прокрутки отображается постоянно), полоса прокрутки отключена, и при наличии количества данных в сетке данных не отображается большой палец прокрутки соответствует высоте экрана. Если я изменю размер экрана до меньшего размера, активируется вертикальная полоса прокрутки, и я могу перемещать большой палец вокруг. Однако я хочу, чтобы полоса прокрутки и ее большой палец были включены независимо от того, может ли содержимое области просмотра соответствовать его содержимому или нет. Кто-нибудь может помочь с этим?
Спасибо!