private void InitializeListBox(int?index = null) { _haltEvents = true; listBox1.Items.Clear(); foreach (ItemPricingModel price in ExistingItems) { if (RemovedItems.Contains(price)) { continue; } AddItemPricingToListBox(price); } foreach (ItemPricingModel price in NewItems) { AddItemPricingToListBox(price); } if (listBox1.Items.Count > 0) { FormattedListBoxItem item = listBox1.Items[0] as FormattedListBoxItem; if (index.HasValue) { if (index.Value >= listBox1.Items.Count) { item = (FormattedListBoxItem)listBox1.Items[listBox1.Items.Count - 1]; } else { item = (FormattedListBoxItem)listBox1.Items[index.Value]; } } listBox1.SelectedItem = item; if (item != null) { item.IsSelected = true; InitializeFields((ItemPricingModel)item.ReferenceObject); } buttonRemove.IsEnabled = true; SetReadOnly(false); } else { ClearFields(); buttonRemove.IsEnabled = false; SetReadOnly(true); } _haltEvents = false; }
public virtual void RejectChange(T item, bool applyToItem) { if (AddedItems.Contains(item)) { RemoveItem(Items.IndexOf(item)); } else if (RemovedItems.Contains(item)) { InsertItem(Items.Count, item); } else { throw new ArgumentOutOfRangeException(nameof(item), "The specified item does not exist in this collection."); } if (applyToItem && item is IRevertibleChangeTracking) { ((IRevertibleChangeTracking)item).RejectChanges(); } }