Подписка на свое событие

 
0
 
.NET
ava
wester | 25.09.2013, 16:35
Доброго времени суток. Написал свое событие, но вот подписаться на него не могу


//Downloader.cs
// DownloadCompleteEventArgs наследуется от EventArgs
public delegate void DownloadCompleteHandler(object sender, DownloadCompleteEventArgs e);
        public event DownloadCompleteHandler OnDownloadComplete;

        protected void DownloadComplete(bool allowedContinue)
        {
            var handler = OnDownloadComplete;
            if (handler == null)
            {
                Debug.WriteLine("null eventHandler");
                return;
            }

            OnDownloadComplete(this, new DownloadCompleteEventArgs(allowedContinue));
        }

//Form1.cs
public MainWindow()
        {
            downloader=new Downloader();
            
            InitializeComponent();
// пытаюсь подписаться на событие
           downloader.OnDownloadComplete +=OnDownloadComplete1;
           }
private void OnDownloadComplete1(object sender, DownloadCompleteEventArgs e)
        { //some code
     }


Но в самом методе DownloadComplete(bool)  событие не вызывается, так как handler=null.
Подскажите пожалуйста, где я ошибся
Comments (1)
ava
jsharp36 | 25.09.2013, 19:00 (Edited 28.09.2013 15:01) #
А из кода ничего не ясно. Он вырван из другого класса.

Очевидно, если handler == null, то так оно и есть. Судя из этого кода, подписка идет в конструкторе MainWindow(), причем после отработки конструктора Downloader(). Значит, либо вы нигде не вызываете конструктор MainWindow(), т.е. не создаете объекта окна, либо вызываете метод
protected void DownloadComplete(bool allowedContinue)
из конструктора Downloader. Т.е. тогда, когда еще не было никакой подписки на событие. А вообще, используйте режим Debug и точки останова - узнаете, как работает ваша программа и в какой очередности.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit