Генерирование события от внутреннего класса, который будет обработан во внешнем классе, Как Сделать?

У меня есть класс A, B

    class A
    {
        public class B
        {
            public event EventHandler handleClick;
            public void eventraising(object sender, EventArgs e)
            {
                if (handleClick != null)
                    handleClick(this, e);
            }
        }

        //handle raised event here
    }

Как я могу сделать это

1
задан Shantanu Gupta 23 June 2010 в 07:42
поделиться

2 ответа

Классу A сначала понадобится экземпляр класса B. Вложенные классы в .NET - это просто способ организации типов. Это не подразумевает какого-либо владения экземпляром.

Итак, вам нужно сделать что-то вроде:

class A
{

    private B instanceOfB;

    // constructor
    public A() {
        instanceOfB = new B();
        instanceOfB.handleClick += instanceOfB_handleClick;
    }

    // event handler
    private void instanceOfB_handleClick(object sender, EventArgs e) {
        // blah
    }

    public class B
    {
        public event EventHandler handleClick;
        public void eventraising(object sender, EventArgs e)
        {
            if (handleClick != null)
                handleClick(this, e);
        }
    }

}

Кроме того, ваше событие должно называться просто Click, а не handleClick.

2
ответ дан 2 September 2019 в 23:36
поделиться

Вам нужен экземпляр B в A.

class A
{
    B b = new B;

    A()
    {
        b.handleClick += (sender, ev) => { ... }
    }
}
0
ответ дан 2 September 2019 в 23:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: