Hi Telerik Team,
We have implemented data Virtualization on RadGridView using MVVM with inline edits same as your demo:http://demos.telerik.com/silverlight/#DataVirtualization/FirstLook.
when we edit a value and scroll down, we are getting an exception "Cannot change ObservableCollection during a CollectionChanged or PropertyChanged event."
same happening at you demo page. I have attached the screen shot.
please help us in fixing this issue ASAP.
Thanks,
Sai
Hi Team
The Data Virtualization view.ItemsLoading += (s, args) => event not calling is there anything more to do with this . my code is below please help me on this.
C# code:-
VirtualView = new VirtualQueryableCollectionView() { LoadSize = 500, VirtualItemCount = 200 };
VirtualView.ItemsLoading += (s, e) =>
{
var querytoLoad = dcBusinessAccountingContext.GetDepositListingSPQuery(search, searchDate, status).OrderByDescending(o => o.TransactionDate).IncludeTotalCount(true).Sort(VirtualView.SortDescriptors).Where(VirtualView.FilterDescriptors).Skip(e.StartIndex).Take(e.ItemCount);
dcBusinessAccountingContext.Load<DepositsListingSP_Result>(querytoLoad, LoadBehavior.MergeIntoCurrent, false).Completed += (senders, args) =>
{
var lo = (LoadOperation)senders;
if (lo.TotalEntityCount != -1 && lo.TotalEntityCount != VirtualView.VirtualItemCount)
{
VirtualView.VirtualItemCount = lo.TotalEntityCount;
}
else
{
}
VirtualView.Load(e.StartIndex, lo.Entities);
newdepositListing.BusyIndicator.IsBusy = false;
SetGridLinesVisibility.SetGridLines(newdepositListing.dtgdepositList);
GridViewScrollViewer scrollViewer = newdepositListing.dtgdepositList.ChildrenOfType<GridViewScrollViewer>().FirstOrDefault();
objApplicationClass.AdjustFooterHeight(newdepositListing.dtgdepositList, false);
if (scrollViewer != null)
{
if (scrollViewer.ComputedVerticalScrollBarVisibility == System.Windows.Visibility.Visible)
{
objApplicationClass.AdjustFooterHeight(newdepositListing.dtgdepositList, false);
}
else
{
objApplicationClass.AdjustFooterHeight(newdepositListing.dtgdepositList, true);
}
}
};
};
newdepositListing.DataContext = VirtualView;
Xaml Code:-
<telerikpresentation:RadGridView x:Name="dtgdepositList" Margin="0" RowHeight="22" Grid.Row="1" Height="Auto"
BorderThickness="0,1,0,0" IsReadOnly="True"
AutoGenerateColumns="true" VerticalAlignment="Top"
HorizontalAlignment="Stretch" IsFilteringAllowed="False"
ShowColumnHeaders="True" ShowGroupPanel="False" ItemsSource="{Binding}"
CanUserSelect="True" CanUserSortColumns="True" telerikpresentation:PersistenceManager.StorageId="dtgdepositList" CanUserFreezeColumns="False" IsEnabled="True" IsSynchronizedWithCurrentItem="False"
CanUserResizeColumns="True" RowIndicatorVisibility="Collapsed"
Cursor="Hand" MinWidth="850"
GridViewHeaderMenu:ContextMenuBehaviour.IsEnabled="True" ShowColumnFooters="False"
SelectedItem="{Binding Path=SelectedDepositListing, Mode=TwoWay}"
ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto" IsLocalizationLanguageRespected="False" >
<i:Interaction.Behaviors>
<EmptyDataTemplate:EmptyDataTemplateBehavior>
<EmptyDataTemplate:EmptyDataTemplateBehavior.EmptyDataTemplate>
<DataTemplate>
<TextBlock Text="No results found!" Foreground="Red" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="{Binding MessageVisibility}" />
</DataTemplate>
</EmptyDataTemplate:EmptyDataTemplateBehavior.EmptyDataTemplate>
</EmptyDataTemplate:EmptyDataTemplateBehavior>
</i:Interaction.Behaviors>
</telerikpresentation:RadGridView>