Есть ListBox, который обновляется из разных мест программы (даже из разных потоков, но не в этом суть). Есть ли способ отловить факт добавления и удаления элементов в него?
P.S.>> ListBox свободный (не привязан ни к какому источнику).
Используй тот же компонент, но подписывайся на событие ItemsChanged...
public partial class KnownListBox : ListBox
{
public sealed class ItemChangedEventArgs : EventArgs
{
public ItemChangedEventArgs()
: base()
{
}
//Твои поля доп. инфрмации
}
public event EventHandler<ItemChangedEventArgs> ItemChanged;
public KnownListBox()
{
InitializeComponent();
}
public void AddItem(object obj)
{
Items.Add(obj);
ItemChanged(this, new ItemChangedEventArgs());
}
public void AddItemsRange(ListBox.ObjectCollection value)
{
Items.AddRange(value);
ItemChanged(this, new ItemChangedEventArgs());
}
public void AddRange(object[] items)
{
Items.AddRange(items);
ItemChanged(this, new ItemChangedEventArgs());
}
//Ну и в таком духе продолжаем с удалением... Основная идея компонента надеюсь понятна
}
|