2012-02-27 1 views
2

Мне нужен совет по добавлению события (щелчок мыши в этом случае) в конструкторе класса.советовать о добавлении событий в конструктор объекта

У меня есть массив изображений, которые я получаю от Flickr, и это может быть изменение, и я хочу добавить к ним событие click.

У меня действительно была проблема с этим, поэтому я сделал образ класса и добавил событие в конструкторе, поэтому мне не нужно искать, какой элемент управления я нажимал на странице каждый раз, когда я нажимал на него.

Вот пример конструктора:

public FlickerImages(string url, string title, string desc, System.Web.UI.Page page,ImageButton image) 
{ 
    this.url = url; 
    this.title = title; 
    this.descreption = desc; 
    this.image = image; 

    image.Click += this.onImageClick; //--> the event 
    //image is a ImageButton object 

    this.page = page; 


} 

Я хочу знать, если это хорошая практика, или я должен всегда добавлять события вне класса объектов?

(извините за мой английский)

+0

@TimSchmelter это был всего лишь небольшой тест, и я хочу увидеть результат быстро, поэтому я ссылался на страницу и вы ссылаетесь на страницу.Response.Write (""). – samy

ответ

1

Вы можете посмотреть на этот похожий вопрос:

Is it poor form for a C# class to subscribe to its own published events?

Но помимо что, почему вы сохраняете ссылку на страницу в классе изображения? Вы также должны убедиться, что эти объекты воссозданы при каждой обратной передаче.

Я бы предложил вместо этого использовать UserControls и добавить соответствующие свойства и события.

2

Вы также должны иметь -=, может быть, вы могли бы сделать свой класс IDisposable и unreference событие в методе .Dispose().

+0

Вы имеете в виду, что хотите добавить события в класс, и просто убедитесь, что у меня есть возможность отказаться от подписки на событие внутри класса? – samy

+0

да, это (что я имел в виду :) – Seb

Смежные вопросы