private void AllItems_ItemChanged(object sender, FilterItemChangedEventArgs e) { Invoke(new Action(() => { ComboBox cbb; switch (e.Type) { case FilterItemType.Category: cbb = cbbCategory; break; case FilterItemType.Level: cbb = cbbLevel; break; case FilterItemType.Operation: cbb = cbbOperation; break; case FilterItemType.Organization: cbb = cbbOrganization; break; case FilterItemType.Process: cbb = cbbProcess; break; case FilterItemType.ReqId: cbb = cbbRequId; break; case FilterItemType.Thread: cbb = cbbThread; break; default: cbb = cbbUser; break; } if (e.Changes.Action == NotifyCollectionChangedAction.Add) { foreach (var item in e.Changes.NewItems) { cbb.Items.Add(item); } } else if (e.Changes.Action == NotifyCollectionChangedAction.Remove) { foreach (var item in e.Changes.OldItems) { cbb.Items.Remove(item); } } })); }
private void CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { var args = new FilterItemChangedEventArgs { Changes = e }; if (sender == Operations) { args.Type = FilterItemType.Operation; } else if (sender == Processes) { args.Type = FilterItemType.Process; } else if (sender == Organizations) { args.Type = FilterItemType.Organization; } else if (sender == Threads) { args.Type = FilterItemType.Thread; } else if (sender == Categories) { args.Type = FilterItemType.Category; } else if (sender == Users) { args.Type = FilterItemType.User; } else if (sender == Levels) { args.Type = FilterItemType.Level; } else if (sender == RequestIds) { args.Type = FilterItemType.ReqId; } ItemChanged?.Invoke(this, args); }