|
//MainPage.xaml
<ContentPage.BindingContext>
<local:ViewModel x:Name="viewModel" />
</ContentPage.BindingContext>
<ContentPage.Content>
<sfgrid:SfDataGrid x:Name="sfGrid"
AutoGenerateColumns="False"
ItemsSource="{Binding OrdersInfo}"
AllowResizingColumn="True"
ColumnSizer="Star"
AllowLoadMore="True"
LoadMoreCommand="{Binding LoadMore}"
IsBusy="{Binding Busy}"
>
<sfgrid:SfDataGrid.Columns>
<sfgrid:GridTextColumn MappingName="OrderID" />
<sfgrid:GridTextColumn MappingName="EmployeeID" />
<sfgrid:GridTextColumn MappingName="CustomerID" />
<sfgrid:GridTextColumn MappingName="ShipCountry" HeaderText="Country"/>
</sfgrid:SfDataGrid.Columns>
</sfgrid:SfDataGrid>
</ContentPage.Content>
public class ViewModel : NotificationObject
{
private bool busy;
public bool Busy
{
get
{
return busy;
}
set
{
busy = value;
RaisePropertyChanged("Busy");
}
}
public ViewModel()
{
order = new OrderInfoRepository();
LoadMore = new Command(LoadMoreItems);
SetRowstoGenerate(50);
}
private async void LoadMoreItems()
{
this.Busy = true;
await Task.Delay(new TimeSpan(0, 0, 5));
for (int i = 0; i < 20; i++)
this.OrdersInfo.Add(order.GenerateOrder(OrdersInfo.Count + 1));
this.Busy = false;
}
} |