Liste<T> cuisson Événement sur le Changement

J'ai créé une Classe EventList hériter Liste qui déclenche un Événement à chaque fois que quelque chose est Ajouté, Insérés ou Retirés:

public class EventList<T> : List<T>
{
    public event ListChangedEventDelegate ListChanged;
    public delegate void ListChangedEventDelegate();

    public new void Add(T item)
    {
        base.Add(item);
        if (ListChanged != null
            && ListChanged.GetInvocationList().Any())
        {
            ListChanged();
        }
    }
    ...
}

Pour le Moment je l'utilise comme une Propriété comme ceci:

public EventList List
{
    get { return m_List; }
    set
    {
        m_List.ListChanged -= List_ListChanged;

        m_List = value;

        m_List.ListChanged += List_ListChanged;
        List_ListChanged();
    }
}

Maintenant, mon Problème est, je peux en quelque sorte la poignée si un Objet est saisi, soit l'en empêcher, donc je n'ai pas à faire l'événement de câblage des trucs dans l'incubateur?

Bien sûr, je peux changer la propriété "mode privé", mais je voudrais être en mesure d'utiliser la classe en tant que variables.

Pourquoi ne pas utiliser ObservableCollection
Il n'est pas clair ce que vous demandez. Pouvez-vous donner un exemple de ce que vous voulez afin de prévenir ou de ce que vous voulez autoriser.
Merci de poster votre List_ListChanged(). De quoi êtes-vous attacher à éviter?

OriginalL'auteur Martin | 2012-10-08