void HandleDeleteClicked(object sender, AttackEventArgs e) { AttackItemView view = (AttackItemView)sender; RemoveSetItem(view.WeaponItem); PrepareAttackItems(); UpdateAttackStrings(); }
void PrepareAttackItems() { foreach (var v in _AttackItems) { v.View.RemoveFromSuperview(); v.WeaponItem.PropertyChanged -= HandleWeaponItemChanged; } _AttackItems.Clear(); foreach (var v in _NaturalAttackItems) { v.View.RemoveFromSuperview(); v.DeleteClicked -= HandleNaturalDeleteClicked; v.ItemChanged -= HandledNaturalItemChanged; } _NaturalAttackItems.Clear(); float y = _AttackMargin; if (_SelectedTab != TypeTab.NaturalTab) { if (EnumerableSet() != null) { foreach (WeaponItem a in EnumerableSet()) { AttackItemView v = new AttackItemView(a); _ScrollView.Add(v.View); v.View.SetLocation(_AttackMargin, y); float height = (float)v.View.Bounds.Height; y += height + _AttackMargin; v.DeleteClicked += HandleDeleteClicked; _AttackItems.Add(v); a.PropertyChanged += HandleWeaponItemChanged; } } if (_SelectedTab == TypeTab.MeleeTab) { _SetLabel.Text = Math.Max(_SelectedSet + 1, 0) + "/" + _Attacks.MeleeWeaponSets.Count; } } else { foreach (WeaponItem w in _Attacks.NaturalAttacks) { NaturalAttackItemView v = new NaturalAttackItemView(w, _Monster); _ScrollView.Add(v.View); v.View.SetLocation(_AttackMargin, y); float height = (float)v.View.Bounds.Height; y += height + _AttackMargin; v.DeleteClicked += HandleNaturalDeleteClicked; v.ItemChanged += HandledNaturalItemChanged; _NaturalAttackItems.Add(v); } } _ScrollView.ContentSize = new CGSize(_ScrollView.Bounds.Width, y); EnableButtons(); }