private void Button_Click(object sender, RoutedEventArgs e) { Button btn = (Button)sender; int collId = int.Parse(btn.Name.Substring(3)); StudentHistoryGridRow shdr = collection[collId]; if (shdr.StatusColor == WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.WHITE) { shdr.StatusColor = WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.GREEN; } else if (shdr.StatusColor == WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.YELLOW) { shdr.StatusColor = WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.WHITE; } else if (shdr.StatusColor == WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.GREEN) { shdr.StatusColor = WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.YELLOW; } else { throw new Exception(); } SetButtonBackgroundColor(btn, shdr.StatusColor); }
public async Task RunAfterCreateAsync() { try { await Task.Run(async() => { await Dispatcher.InvokeAsync(() => { mainPanel.Children.Clear(); }); CourseInformation[] cfs; FileServiceProvider.DeserializeFromXmlFile(DirectoryManager.EssentialInforamtion1Directory + DirectoryManager.CourseInformationSavedName, out cfs); for (int i = 0; i < cfs.Length; i++) { var item = cfs[i]; if (item.CodeInDesUni == "-") { continue; } StudentHistoryGridRow shdr = new StudentHistoryGridRow { Id = item.Id, CodeInDesUni = item.CodeInDesUni, TitleInDesUni = item.CorrespondingTitleInDesUni, StatusColor = item.IsPassed ? WpfApplication.WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.GREEN : item.NumberOfFailed > 1 ? WpfApplication.WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.YELLOW : WpfApplication.WpfApplicationUtilityClasses.Enums.StudentHistoryGridRowColors.WHITE, }; Dispatcher.Invoke(() => { collection.Add(shdr); }); } await Dispatcher.InvokeAsync(() => { for (int i = 0; i < collection.Count; i++) { Badged badged = new Badged(); badged.Badge = collection[i].CodeInDesUni; badged.Margin = new Thickness(15); badged.Name = "bdg" + collection[i].Id; Button button = new Button(); button.Content = new TextBlock() { Text = collection[i].TitleInDesUni, TextAlignment = TextAlignment.Center, TextWrapping = TextWrapping.Wrap }; button.Name = "btn" + i.ToString(); button.Width = 250; button.Height = Double.NaN; button.Padding = new Thickness(8); SetButtonBackgroundColor(button, collection[i].StatusColor); button.Click += Button_Click; badged.Content = button; mainPanel.Children.Add(badged); } }); }); } catch { } }