Правильное место для вызова события? - PullRequest
0 голосов
/ 27 сентября 2008

У меня есть проект Windows Form, который я только начал. В форме у меня есть список, который я загружаю с продуктами. Когда кто-то дважды щелкает Продукт, я хочу, чтобы он вызвал событие ProductChanged. Другие вещи в моем проекте будут подписываться на это событие и обновлять такие вещи, как другие части графического интерфейса при изменении продукта.

Мой вопрос: где должно быть событие и кто его должен поднять? Должно ли событие быть в форме и вызываться обработчиком двойного щелчка списка? Или я должен указать, где событие находится в моем классе Products, а список вызывает метод этого класса, чтобы сообщить, что продукт изменился. И тогда класс Product поднимет событие? Или это должно быть сделано по-другому?

Ответы [ 4 ]

1 голос
/ 27 сентября 2008

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

1 голос
/ 27 сентября 2008

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

0 голосов
/ 27 сентября 2008

Имя ProductChanged означает, что событие происходит, когда продукт был изменен. Я бы поднял событие в классе продукта, потому что в этом случае каждое изменение будет вызывать событие. Если вы активируете его в графическом интерфейсе, а затем добавите (например) функциональность импорта, скорее всего, вы забыли запустить событие после изменения.

0 голосов
/ 27 сентября 2008

Зависит от того, что означает ваше событие. Если целью является уведомление подписчиков о том, что объект Product был изменен, то он принадлежит классу Product и должен запускаться кодом внутри этого класса. Если целью является уведомление о том, что был выбран другой объект Product, он относится к представлению, управляющему списком продуктов (вашим списком / формой).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...