private void InitTasksForElement(DependencyObject element, Config.TaskType taskType = default) { int index = 0; foreach (var bttn in FindVisualChildren <Button>(element)) { if (bttn == null) { continue; } try { bttn.Click += OnTaskButtonClicked; //bttn.Content = (index + 1).ToString(); var task = taskType == Config.TaskType.Punishment ? Config.Tasks.Where(x => x.TaskType == Config.TaskType.Punishment).ElementAtOrDefault(index) : Config.Tasks.ElementAtOrDefault(index); if (task == null) { bttn.IsEnabled = false; bttn.Background = Brushes.Gray; continue; } task.Button = bttn; task.EventRegistered = true; task.IsDisabled = false; switch (task.TaskType) { case Config.TaskType.Punishment: bttn.Background = Brushes.Coral; break; case Config.TaskType.Girls: bttn.Background = Brushes.Pink; break; case Config.TaskType.Boys: bttn.Background = Brushes.DeepSkyBlue; break; case Config.TaskType.Common: bttn.Background = Brushes.White; break; } } catch (Exception e) { Console.WriteLine(e); continue; } finally { index++; } } }
private void ResetTasks(Config.TaskType taskType) { foreach (var task in Config.Tasks) { if (task.TaskType != taskType) { continue; } if (task.Button == null || task.Button.IsEnabled) { continue; } Dispatcher.Invoke(() => task.Button.IsEnabled = true); task.IsDisabled = false; if (!task.EventRegistered) { task.Button.Click += OnTaskButtonClicked; task.EventRegistered = true; } switch (task.TaskType) { case Config.TaskType.Punishment: Dispatcher.Invoke(() => task.Button.Background = Brushes.Coral); break; case Config.TaskType.Girls: Dispatcher.Invoke(() => task.Button.Background = Brushes.Pink); break; case Config.TaskType.Boys: Dispatcher.Invoke(() => task.Button.Background = Brushes.DeepSkyBlue); break; case Config.TaskType.Common: Dispatcher.Invoke(() => task.Button.Background = Brushes.White); break; } } Dispatcher.Invoke(() => RemainingTasksLabel.Content = $"{GetAvailableTasksCount()}/{GetTotalTasksCount()}"); }