Прокрутка Silverlight Datagrid, DataGrid запускает событие RowLoading

63
6

Прокрутка Silverlight DataGrid, DataGrid запускает событие RowLoading. Как остановить событие прокрутки от RowLoadingRow события RowLoadingRow?

спросил(а) 2021-01-25T17:21:17+03:00 4 месяца, 3 недели назад
1
Решение
77

Надеюсь, это поможет, это работает в Silverlight.

    void grid_LoadingRow(object sender, DataGridRowEventArgs e)
{
YourViewModel vm = this.DataContext as YourViewModel;
//prevent the LoadingRow on Scroll
if (vm.NumRowsLoaded >= vm.NumRowsTotal)
return;
vm.NumRowsLoaded += 1;

RowObject c = e.Row.DataContext as RowObject;
if (c != null)
{
//Your styling options
}
}

Вы должны управлять NumRowsLoaded и NumRowsTotal в вашей ViewModel, когда взимаете плату за свои данные.

ответил(а) 2021-01-25T17:21:17+03:00 4 месяца, 3 недели назад
78

Событие RowLoading запускается, поскольку строки виртуализированы. С виртуализацией строки создаются (и загружаются) только тогда, когда они видны на экране. Поэтому каждый раз, когда вы прокручиваете вниз или вверх, создается новая строка, загружается и запускается событие RowLoading.

Чтобы отключить виртуализацию, вы можете попробовать установить это свойство:

VirtualizingStackPanel.VirtualizationMode="Standard"

Имейте в виду, что это может замедлить производительность вашей сетки, если у вас много строк.

ответил(а) 2021-01-25T17:21:17+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема