<
telerikDataControls:RadListView
x:Name
=
"listView"
BackgroundColor
=
"White"
ItemTapped
=
"listView_ItemTappedAsync"
LoadOnDemandMode
=
"Automatic"
IsLoadOnDemandEnabled
=
"True"
LoadOnDemand
=
"listView_LoadOnDemand"
LoadOnDemandBufferItemsCount
=
"5"
IsPullToRefreshEnabled
=
"True"
RefreshRequested
=
"listView_RefreshRequestedAsync"
>
<
telerikDataControls:RadListView.LayoutDefinition
>
<
telerikListView:ListViewLinearLayout
ItemLength
=
"64"
/>
</
telerikDataControls:RadListView.LayoutDefinition
>
<
telerikDataControls:RadListView.ItemTemplate
>
<
DataTemplate
>
<
telerikListView:ListViewTemplateCell
>
<
telerikListView:ListViewTemplateCell.View
>
<
StackLayout
Orientation
=
"Horizontal"
VerticalOptions
=
"Center"
>
<
StackLayout.Padding
>
<
OnPlatform
x:TypeArguments
=
"Thickness"
>
<
On
Platform
=
"Android"
Value
=
"0, 0, 0, 0"
/>
<
On
Platform
=
"iOS"
Value
=
"10, 5, 0, 5"
/>
</
OnPlatform
>
</
StackLayout.Padding
>
<
ContentView
>
<
ContentView.Padding
>
<
OnPlatform
x:TypeArguments
=
"Thickness"
>
<
On
Platform
=
"Android"
Value
=
"0, 0, 0, 0"
/>
<
On
Platform
=
"iOS"
Value
=
"0, 0, 0, 7"
/>
</
OnPlatform
>
</
ContentView.Padding
>
<
Image
x:Name
=
"assetImage"
Source
=
"{Binding AssetImage, Converter={StaticResource base64Converter}}"
VerticalOptions
=
"Center"
/>
</
ContentView
>
<
StackLayout
Orientation
=
"Vertical"
Spacing
=
"5"
VerticalOptions
=
"Center"
>
<
Label
x:Name
=
"primarySecondaryId"
Text
=
"{Binding PrimarySecondaryId}"
/>
<
Label
x:Name
=
"siteName"
Text
=
"{Binding SiteName}"
/>
</
StackLayout
>
</
StackLayout
>
</
telerikListView:ListViewTemplateCell.View
>
</
telerikListView:ListViewTemplateCell
>
</
DataTemplate
>
</
telerikDataControls:RadListView.ItemTemplate
>
</
telerikDataControls:RadListView
>
That is how my RadListView is defined. And these are my handlers:
/// <summary>
/// OnRefresh method
/// </summary>
private
async
void
listView_RefreshRequestedAsync(
object
sender, Telerik.XamarinForms.DataControls.ListView.PullToRefreshRequestedEventArgs e)
{
await Task.Run(() => ReloadData());
listView.IsPullToRefreshActive =
false
;
listView.IsLoadOnDemandEnabled = App.ShouldInfiniteScroolBeEnabled(assetsViewModel.ListOfAssets.Count);
}
/// <summary>
/// Reloads the data back to the default, remaking the API call. This will fetch the newest data.
/// </summary>
private
void
ReloadData()
{
assetsViewModel.PageNumber = 1;
assetsViewModel.GetAssets();
listView.ItemsSource = assetsViewModel.ListOfAssets;
SearchCollection = listView.ItemsSource
as
ObservableCollection<AssetsListModel>;
}