Как добавить элементы в DataGrid, когда пользователи прокручивают страницу вниз?

   <DataGrid AutoGenerateColumns="False" Name="dgMain" 
              Grid.Column="0" Grid.Row="1"
              ItemsSource="{Binding Path=Items,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
        <DataGrid.Columns>
            <DataGridTextColumn Header="id" Binding="{Binding Path=Id,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
            <DataGridTextColumn Header="name" Binding="{Binding Path=Name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
        </DataGrid.Columns>
    </DataGrid>

привязка ItemsSource к public ObservableCollection<Student> Items { get; set; }

предметы, с которыми я хорошо начинаю

       Items = new ObservableCollection<Student>();

        for (int i = 0; i < 1000; i++)
        {
            Items.Add(new Student() { Id = i, Name = "name" + i.ToString() });
        }

как я могу заставить dataGrid сначала отображать 50 элементов, а когда пользователь прокручивает вниз, я хорошо загружаю другие 50 элементов, а затем.

1. в scrollView нет события прокрутки вниз, так как я могу получить прокрутку вниз?

2. Как я могу заставить dataGrid показывать 50 элементов, когда в itemsSource есть 1000 элементов?


person hfcc    schedule 09.03.2012    source источник


Ответы (1)


Нет встроенной подкачки, поэтому, если вы хотите 50 элементов, вам нужно иметь только 50 элементов в источнике.

DataGrid поддерживает виртуализацию. Почему бы просто не ограничить высоту? Высота = "200".

person paparazzo    schedule 09.03.2012