Comment faire je retourne un article d'un gestionnaire d'événements personnalisé

StackOverflow https://stackoverflow.com/questions/4949619

  •  07-11-2019
  •  | 
  •  

Question

Un projet sur lequel je travaille exige que je puisse déclencher un événement chaque fois qu'un élément est ajouté à une liste. Pour y parvenir, j'ai créé une classe de liste personnalisée héritée de la liste et ajouté un événement ONADD. Je souhaite également renvoyer l'article ajouté comme EventArgs pour lequel j'ai ajouté un code supplémentaire (indiqué ci-dessous):

    public class ClientListObservable<Client>:List<Client>
    {
        public event EventHandler<EventArgs<Client>> OnAdd;

        public void Add(Client item)
        {
            if (null != OnAdd)
            {
                OnAdd(this, new EventArgs<Client>(item));
            }

            base.Add(item);
        }
    }

    public class EventArgs<Client> : EventArgs
    {
        public EventArgs(Client value)
        {
            m_value = value;
        }

        private Client m_value;

        public Client Value
        {
            get { return m_value; }
        }
    }

C'est ainsi que j'ajoute un gestionnaire

clientList.OnAdd += new EventHandler<EventArgs<Client>>(clientList_OnAdd);

Mais, dans la méthode onadd:

private void clientList_OnAdd(object sender, EventArgs e)
        {
            //want to be able to access the data members of the Client object added
        }

Je ne peux accéder qu'à e.equals, par exemple, code, e.getType et E.ToString, et aucun des membres de la classe client.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top