private void btnDeleteRule_Click(object sender, RoutedEventArgs e) { //get data context Button btnDeleteRule = sender as Button; RuleHeader rule = btnDeleteRule.DataContext as RuleHeader; //get index of rule being removed Int32 index = Rules.IndexOf(rule); //remove rule Rules.Remove(rule); //update indices of remaing rules for (int i = index; i < Rules.Count; i++) { Rules[i].Index--; } }
private void btnAddRule_Click(object sender, RoutedEventArgs e) { //get data context Button btnDeleteRule = sender as Button; RuleHeader rule = btnDeleteRule.DataContext as RuleHeader; //get index of rule that new rule is being added after Int32 index = Rules.IndexOf(rule) + 1; //update indices of rules that come after the one being inserted for (int i = index; i < Rules.Count; i++) { Rules[i].Index++; } //insert rule Rules.Insert(index, new RuleHeader() { Index = index }); }