コード例 #1
0
        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);
        }
コード例 #2
0
        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 { }
        }