アイテムがBindingListに追加される前に、いくつかの処理を実行したいと思います。ListChangedイベントがあるようですが、これはアイテムが追加された後に発生します。AddingNewイベントは、AddNewメソッド(Addメソッドではない)が呼び出されたときにのみ発生します。誰かが以前にこのようなことをしたことがありますか?
アップデート:
次のクラスを作成しました。IListでAddメソッドが呼び出されると、新しいAddメソッドがトリガーされます。それで、私は他の場所で読んだキャストの問題がありますか?コレクションからISpecialCollectionインターフェイスを削除した場合、Addメソッドが呼び出されません。なぜそれが異なって動作しているのか誰かが説明できますか?ISpecialCollection <インターフェイスを使用すると、キャストの問題が発生しますか?
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());
}
}