Hi,
I use a VirtualCollection binded to a RadGridView (Version 2015.1.225.45 framework 4.5.1 )
My scenario is : when i click on the button move last VirtualCollectionPays.MoveCurrentToLast(); the scrollbar of gridview move to last position and when i click on the button move fist VirtualCollectionPays.MoveCurrentToFirst(); the scrollbar of gridview move to fist position .
Error : when i move to the last and come back to first position the loading event in virtual collection make a recursive call and load all Items in the database .
I use a plain wcf services not rest nether data services .
i use an async methode in the loading event .
// ItemsLoading
when selected change of gridView the scrollbar change position
same problem when i change SelectionChanged (radGridView) with PropertyChanged (VirtualCollection)
I use a VirtualCollection binded to a RadGridView (Version 2015.1.225.45 framework 4.5.1 )
My scenario is : when i click on the button move last VirtualCollectionPays.MoveCurrentToLast(); the scrollbar of gridview move to last position and when i click on the button move fist VirtualCollectionPays.MoveCurrentToFirst(); the scrollbar of gridview move to fist position .
Error : when i move to the last and come back to first position the loading event in virtual collection make a recursive call and load all Items in the database .
I use a plain wcf services not rest nether data services .
i use an async methode in the loading event .
public
async
void
LoadData()
{
VirtualCollectionPays =
new
VirtualQueryableCollectionViewExtended<Pay>() { LoadSize = SizePage };
VirtualCollectionPays.ItemsLoading += VirtualCollectionPays_ItemsLoading;
PayDataPage datapager =
null
;
var slowTask = Task.Run(() =>
{
datapager = _dataProvider.GetQueryableLazyPay(SizePage, position, PayFilterDescriptor, PaySortDescriptor, PayGroupDescriptor);
});
await slowTask;
VirtualCollectionPays.VirtualItemCount = datapager.TotalCount;
VirtualCollectionPays.Load(0, datapager.DataItems);
}
// ItemsLoading
async
void
VirtualCollectionPays_ItemsLoading(
object
sender, VirtualQueryableCollectionViewItemsLoadingEventArgs e)
{
BusyIndicatorGrid =
true
;
try
{
PayDataPage datapager =
null
;
ItemsLoading = Task.Run(() =>
{
datapager = _dataProvider.GetQueryableLazyPay(SizePage, e.StartIndex, PayFilterDescriptor, PaySortDescriptor, PayGroupDescriptor);
});
await ItemsLoading;
VirtualCollectionPays.Load(e.StartIndex, datapager.DataItems);
BusyIndicatorGrid =
false
;
}
catch
(Exception ex)
{
string
mg = ex.Message;
}
}
when selected change of gridView the scrollbar change position
void
radGridViewPay_SelectionChanged(
object
sender, SelectionChangeEventArgs e)
{
var VMListePay =
this
.DataContext
as
VMListePay;
radGridViewPay.ScrollIndexIntoView(VMListePay.VirtualCollectionPays.CurrentPosition);
}
same problem when i change SelectionChanged (radGridView) with PropertyChanged (VirtualCollection)
void
VirtualCollectionPays_PropertyChanged(
object
sender, System.ComponentModel.PropertyChangedEventArgs e)
{
var VMListePay =
this
.DataContext
as
VMListePay;
if
(e.PropertyName ==
"CurrentPosition"
)
{
if
(VMListePay.VirtualCollectionPays.CurrentPosition >= 0)
{
radGridViewPay.ScrollIndexIntoView(VMListePay.VirtualCollectionPays.CurrentPosition);
}
}
}