void MyListBox_Disposed(object sender, EventArgs e) { ClearDrawingResources(); if (underlying != null) { underlying.ListChanged -= new ListChangedEventHandler(underlying_ListChanged); } underlying = null; getDisplayNameMethod = null; selected.Clear(); }
public void SetUnderlying(IBindingList list, GetDisplayNameMethod getDisplayName) { if (underlying != null) { underlying.ListChanged -= new ListChangedEventHandler(underlying_ListChanged); } underlying = list; if (underlying != null) { underlying.ListChanged += new ListChangedEventHandler(underlying_ListChanged); } getDisplayNameMethod = getDisplayName; Rebuild(); }