public ConditionControl(CraftingCondition condition, ItemBase itemBase, List <Affix> affixes) { _itemBase = itemBase; _affixes = affixes; _craftingCondition = condition; SubconditionControls = new ObservableCollection <SubconditionControl>(); for (int i = condition.CraftingSubConditions.Count - 1; i >= 0; i--) { var subconditionControl = new SubconditionControl(condition.CraftingSubConditions[i], affixes, GetNextIndex(), _itemBase); subconditionControl.OnDeleteEvent += (x, y) => RemoveSubcondition(y.Control); SubconditionControls.Add(subconditionControl); } if (SubconditionControls.Count == 0) { AddSubcondition(); } SelectedSubcondition = SubconditionControls[0]; OnPropertyChanged(nameof(SelectedSubcondition)); OnPropertyChanged(nameof(SubconditionControls)); DataContext = this; InitializeComponent(); }
public void AddSubcondition() { var subcondition = new CraftingSubcondition(); var subconditionControl = new SubconditionControl(subcondition, _affixes, GetNextIndex(), _itemBase); subconditionControl.OnDeleteEvent += (x, y) => RemoveSubcondition(y.Control); _craftingCondition.CraftingSubConditions.Add(subcondition); SubconditionControls.Add(subconditionControl); SelectedSubcondition = subconditionControl; OnPropertyChanged(nameof(SelectedSubcondition)); OnPropertyChanged(nameof(SubconditionControls)); }
public void RemoveSubcondition(SubconditionControl subcondition) { SubconditionControls.Remove(subcondition); _craftingCondition.CraftingSubConditions.Remove(subcondition.SubCondition); SelectedSubcondition = null; if (SubconditionControls.Count == 0) { AddSubcondition(); } SelectedSubcondition = SubconditionControls[0]; OnPropertyChanged(nameof(SelectedSubcondition)); OnPropertyChanged(nameof(SubconditionControls)); }
public OnDeleteEventArgs(SubconditionControl c) { Control = c; }