public void refresh() { if (MyEvents.Events == null) { return; } foreach (EventEntry ev in MyEvents.Events) { ev.inMySched = true; } lvForEvents.events = MyEvents.Events; if (MyEvents.Events.Count < 1) { this.Content = new Label { Text = "Nothing Here Yet\nTry adding an event from the Main Schedule", HorizontalTextAlignment = TextAlignment.Center, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center } } ; else { this.Content = lvForEvents; lvForEvents.refresh(); } }
public void refresh() { if (MainEvents.Events == null || MainEvents.Events.Count < 1) { this.Content = new StackLayout { Children = { new Label { Text = "Error, database could not be loaded", FontSize = 30, HorizontalTextAlignment = TextAlignment.Center, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center }, new Button { Text = "Try Again", Command = new Command(() => { this.Content = null; this.Content = LoadingText; Task.Factory.StartNew(() => { MainEvents.refreshData(false); }) .ContinueWith(task => { this.refresh(); }, TaskScheduler.FromCurrentSynchronizationContext()); }) } } }; } else { Label NameCategory = new Label { Text = " Category:", FontAttributes = FontAttributes.Bold, FontSize = 17, HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center }; Picker categories = new Picker { Title = "Filter by category", HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Center }; categories.Items.Add("All"); foreach (EventEntry cat in MainEvents.Events) { if (!categories.Items.Contains(cat.category) && cat.category != " ") { categories.Items.Add(cat.category); } } categories.SelectedIndexChanged += (sender, args) => { prevCategory = categories.SelectedIndex; if (categories.SelectedIndex == 0) { lvForEvents.events = MainEvents.Events; } else { lvForEvents.events = MainEvents.Events.Where(x => x.category == categories.Items[categories.SelectedIndex]).ToList(); } lvForEvents.refresh(); }; var tempGrid = new Grid(); tempGrid.RowSpacing = 0; tempGrid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(20, GridUnitType.Auto) }); tempGrid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(50, GridUnitType.Auto) }); tempGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(20, GridUnitType.Auto) }); tempGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(50, GridUnitType.Star) }); tempGrid.Children.Add(NameCategory, 0, 0); var aaaa = new StackLayout { Children = { categories } }; tempGrid.Children.Add(aaaa, 1, 0); tempGrid.Children.Add(lvForEvents, 0, 2, 1, 3); this.Content = tempGrid; try { categories.SelectedIndex = prevCategory; if (categories.SelectedIndex == 0) { lvForEvents.events = MainEvents.Events; } else { lvForEvents.events = MainEvents.Events.Where(x => x.category == categories.Items[categories.SelectedIndex]).ToList(); } lvForEvents.refresh(); } catch { categories.SelectedIndex = 0; } } }