Hi,
I am using Load on Demand functionality in manual mode. I am customizing Load and Loading indicators. However, Loading indicator never shows, and after one load, the Load indicator does not reappear.
Sample XAML code is below
<telerikDataControls:RadListView x:Name="PeopleListView" BackgroundColor="White" ItemsSource="{Binding Employees}" IsLoadOnDemandEnabled="True" LoadOnDemand="Handle_LoadOnDemand" LoadOnDemandMode="Manual" IsItemSwipeEnabled="True" ItemSwiping="PeopleListView_ItemSwiping" SwipeOffset="160, 0, 0, 0" SwipeThreshold="10" SelectionGesture="Tap" SelectionMode="Single" SelectionChanged="PeopleListView_SelectionChanged" IsVisible="{Binding IsBusy, Converter={StaticResource InverseBoolConverter}"> <telerikDataControls:RadListView.ItemTemplate> <DataTemplate> <telerikListView:ListViewTemplateCell> <telerikListView:ListViewTemplateCell.View> <Grid BackgroundColor="White"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition> <ColumnDefinition Width="Auto"></ColumnDefinition> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition></RowDefinition> </Grid.RowDefinitions> <Image Source="{Binding PhotoData}" Grid.RowSpan="2" Grid.Column="0" HeightRequest="70" WidthRequest="70"></Image> <Label Grid.Column="1" Grid.Row="0" Margin="0,3,0,0" FontSize="Medium" Text="{Binding FullName}"></Label> <Label Grid.Column="1" Grid.Row="1" VerticalTextAlignment="Start" VerticalOptions="Start" Text="{Binding EmployeeTitle}"></Label> <Image Grid.Column="2" Grid.Row="0" Grid.RowSpan="2" Source="icon" WidthRequest="30" HeightRequest="30"> <Image.GestureRecognizers> <TapGestureRecognizer Tapped="Handle_Tapped"></TapGestureRecognizer> </Image.GestureRecognizers> </Image> </Grid> </telerikListView:ListViewTemplateCell.View> </telerikListView:ListViewTemplateCell> </DataTemplate> </telerikDataControls:RadListView.ItemTemplate> <telerikDataControls:RadListView.LoadOnDemandItemTemplate> <DataTemplate> <Grid BackgroundColor="Red"> <Label FontSize="24" HorizontalOptions="Center" Text="Load more" TextColor="Navy"></Label> </Grid> </DataTemplate> </telerikDataControls:RadListView.LoadOnDemandItemTemplate> <telerikDataControls:RadListView.LoadingOnDemandItemTemplate> <DataTemplate> <Grid BackgroundColor="Green"> <Label FontSize="24" HorizontalOptions="Center" Text="... Loading ..." TextColor="Navy"></Label> </Grid> </DataTemplate> </telerikDataControls:RadListView.LoadingOnDemandItemTemplate> </telerikDataControls:RadListView>
The sample load handler is below
async void Handle_LoadOnDemand(object sender, System.EventArgs e) { await Task.Delay(4000); var service = new MockEmployeeService(); var data = service.GetEmployees(); int i = 0; foreach (var item in data) { i++; item.EmployeeTitle = "LOD " + i; item.FirstName = "LOD " + i; ((ViewModel)this.BindingContext).Employees.Add(item); } }
The sample project is attached - project. Please let me know how to resolve this - I suspect I'm missing something in XAML, etc.
Thank you very much.