using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;

namespace DevExpress.GridDemo {
    public partial class LargeDataSourcePage {
        public LargeDataSourcePage() {
            InitializeComponent();

            activityIndicator.IsRunning = true;
            activityIndicator.IsVisible = true;
            loadingLabel.IsVisible = true;

            BindData();
        }

        async void BindData() {
            BindingContext = await LoadData();
            activityIndicator.IsRunning = false;
            activityIndicator.IsVisible = false;
            loadingLabel.IsVisible = false;
        }
        void OrderChange(int currentPercent) {
            loadingLabel.Text = string.Format("Loading data... {0}%", currentPercent);
        }
        Task<MainPageViewModel> LoadData() {
            return Task<MainPageViewModel>.Run(() => new MainPageViewModel(new DemoOrdersRepository(100000, OrderChange)));
        }
    }
}