Ich möchte einige Verarbeitung zu tun, bevor ein Element zu einer BindingList hinzugefügt wird. Ich sehe, dass es ein ListChanged-Ereignis gibt, aber dieses wird ausgelöst, nachdem das Element hinzugefügt wurde. Das AddingNew-Ereignis wird nur ausgelöst, wenn die AddNew-Methode (nicht die Add-Methode) aufgerufen wird. Hat jemand so etwas schon einmal gemacht?
UPDATE:
Ich habe die folgenden Klassen erstellt, und wenn die Add-Methode auf der IList aufgerufen wird, wird meine neue Add-Methode ausgelöst. Habe ich also das Casting-Problem, von dem ich an anderer Stelle gelesen habe? Wenn ich die ISpecialCollection-Schnittstelle aus der Sammlung entfernt habe, wird meine Add-Methode nicht aufgerufen. Kann jemand erklären, warum es sich anders verhält? Habe ich das Casting-Problem, wenn ich die Schnittstelle ISpecialCollection< verwende?
public interface ISpecialCollection<T> : IList<T>
{
}
public class SpecialCollection<T> : BindingList<T>, ISpecialCollection<T>
{
public new void Add (T item)
{
base.Add(item);
}
}
class Program
{
static void Main(string[] args)
{
IList<ItemType> list = new SpecialCollection<ItemType>();
list.Add(new ItemType());
}
}