// adds a rule and matching UI component based on user selection private void AddRuleClick(object sender, RoutedEventArgs e) { BeepRule br = BeepRule.Create((sender as MenuItem).Header.ToString(), bw.tiles); beepRules.Add(br); BeepRulesUIComponents.Add(CreateBeepRuleUserControl(br)); }
// creates BeepRuleUserControl, a UI component private BeepRuleUserControl CreateBeepRuleUserControl(BeepRule rule) { BeepRuleUserControl bruc = BeepRuleUserControl.Create(rule); bruc.SelectedRule += RuleUserControlRuleSelection; bruc.Deleting += DeleteRuleUserControl; bruc.Dragging += RuleUserControlDragPreviewMouseDown; bruc.PrepareColorPickers(StandardColorItems); bruc.UpdateColorPickers(clrPickMouse.AvailableColors); return(bruc); }
//select different rules in UI private void RuleUserControlRuleSelection(object sender, EventArgs e) { BeepRuleUserControl bruc = sender as BeepRuleUserControl; // selected rule must be different if (bruc.SelectedRuleName == bruc.RuleName) { return; } beepRules.Remove(bruc.Rule); int index = BeepRulesUIComponents.IndexOf(bruc); BeepRulesUIComponents.Remove(bruc); BeepRule br = BeepRule.Create(bruc.SelectedRuleName, bw.tiles); beepRules.Add(br); BeepRulesUIComponents.Insert(index, CreateBeepRuleUserControl(br)); }