Проект, над которым я работаю, требует, чтобы я мог запускать событие при каждом добавлении элемента в список.Для этого я создал собственный класс List, унаследованный от List, и добавил событие OnAdd.Я также хочу вернуть элемент, добавляемый как EventArgs, для которого я добавил еще немного кода (приведенного ниже):
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; }
}
}
Вот как я добавляю обработчик
clientList.OnAdd += new EventHandler<EventArgs<Client>>(clientList_OnAdd);
Но,в методе OnAdd:
private void clientList_OnAdd(object sender, EventArgs e)
{
//want to be able to access the data members of the Client object added
}
Я могу получить доступ только к e.Equals, e.GetHashCode, e.GetType и e.ToString и ни к одному из членов класса Client.