/// <summary> /// Initialize this instance. /// </summary> void Initialize() { var layout = new StackLayout { VerticalOptions = LayoutOptions.Center }; Padding = new Thickness(10, Device.OnPlatform(20, 0, 0), 10, 5); Content = layout; var loadingPage = new LoadingPage(async(page) => { var vm = ViewModelFactory.Get <RootViewModel>(); var products = await vm.GetProducts(); var kv = products.GroupBy(p => p.Category, p => p, (key, value) => new { Key = key, Value = value }); var tableRoot = new TableRoot(); foreach (var obj in kv) { tableRoot.Add(GetTableSection(obj.Key, obj.Value)); } var tableView = new TableView { Intent = TableIntent.Menu, Root = tableRoot }; page.OnLoaded(tableView); }, "Chargement du catalogue"); loadingPage.Loaded += async(sender, e) => { var label = new Label { Text = "T-Shirt shop", FontSize = 36.0, TextColor = Color.FromRgb(52, 152, 219), HorizontalOptions = LayoutOptions.Center }; layout.Children.Add(label); layout.Children.Add((TableView)e); await Navigation.PopModalAsync(); }; Navigation.PushModalAsync(loadingPage); }
void Bind(Product product) { var viewModel = ViewModelFactory.Get <OrderViewModel>(); viewModel.Current = product; viewModel.Failed += async(sender, e) => { await DisplayAlert("Echec de la commande", "Impossible de passer la commande !", "OK"); await Navigation.PopModalAsync(); }; viewModel.Ordered += async(sender, e) => { await DisplayAlert("Commande validée", "Merci pour votre achat !", "OK"); await Navigation.PopModalAsync(); }; BindingContext = viewModel; }