public LoadMoreViewModel()
{
Products = new ObservableCollection<Product>();
AddProducts(0, 13);
LoadMoreItemsCommand = new Command<object>(LoadMoreItems, CanLoadMoreItems);
}
…
…
…
…
private void AddProducts(int index, int count)
{
for (int i = index; i < index + count; i++)
{
var name = Names[i];
var p = new Product()
{
Name = name,
Weight = Weights[i],
Price = Prices[i],
Image = ImageSource.FromResource("SfListViewSample.LoadMore." + name.Replace(" ", string.Empty) + ".jpg")
};
Products.Add(p);
}
} |
public PhotosViewModel PhotosViewModel
{
get { return photosViewModel; }
set
{
if (photosViewModel != value)
{
photosViewModel = value;
}
}
}
public PhotosDataService()
{
photosViewModel = PopulateData<PhotosViewModel>("navigation.json");
photosViewModel.Photos1 = new ObservableCollection<Photo>();
AddProducts(0, 3);
photosViewModel.LoadMoreItemsCommand = new Command<object>(this.LoadMoreItems, this.CanLoadMoreItems);
}
private bool CanLoadMoreItems(object obj)
{
if (photosViewModel.Photos1.Count >= photosViewModel.Photos.Count)
return false;
return true;
}
private async void LoadMoreItems(object obj)
{
var listview = obj as Syncfusion.ListView.XForms.SfListView;
try
{
photosViewModel.IsBusy = true;
await Task.Delay(1000);
var index = photosViewModel.Photos1.Count;
var count = index + 3 >= photosViewModel.Photos.Count ? photosViewModel.Photos.Count - index : 3;
AddProducts(index, count);
}
catch
{
}
finally
{
photosViewModel.IsBusy = false;
}
}
private void AddProducts(int index, int count)
{
for (int i = index; i < index + count; i++)
{
photosViewModel.Photos1.Add(photosViewModel.Photos[i]);
}
} |