Паттерн для обработчиков событий как правильно сделать
От: prof3003  
Дата: 14.11.16 10:45
Оценка:
Добрый день! C#
Прошу помочь не силен.

Есть таблица вешаю обработчик на Binding событие когда идет перемещение
событие срабатывает это понятно и правильно

вешаю обработчик на выбор объекта на форме и потом вызываю поиск в таблице binding find — идет соответственно вызов BINDING и обработчика
и зацикливаются обработчики событий

и наоборот когда делаю перемещение в таблице делаю поиск объекта на форме и опять двойной цикл обработки

пока решил проблему так поставил две заглушки флага — в обработчиках
при входе в процедуру 0 на выходе 1 и соответственно в самой процедуре IF на проверку флага = 0 то не вызывать

хотелось бы как то красиво решить вопрос а если обработчиков будет много это что ставить флаги что ли везде

т.е. суть в том что обработчики событий пересекаются и проблема.
как правильно делать может есть паттерн ?
Re: Паттерн для обработчиков событий как правильно сделать
От: turbocode  
Дата: 14.11.16 15:16
Оценка:
P>как правильно делать может есть паттерн ?

Использую паттерн Call Stack помогает избавится от зацикливания и лишних вызовов.
Re: Паттерн для обработчиков событий как правильно сделать
От: Qulac Россия  
Дата: 14.11.16 16:12
Оценка:
Здравствуйте, prof3003, Вы писали:

P>Добрый день! C#

P>Прошу помочь не силен.

P>Есть таблица вешаю обработчик на Binding событие когда идет перемещение

P>событие срабатывает это понятно и правильно

P>вешаю обработчик на выбор объекта на форме и потом вызываю поиск в таблице binding find — идет соответственно вызов BINDING и обработчика

P>и зацикливаются обработчики событий

P>и наоборот когда делаю перемещение в таблице делаю поиск объекта на форме и опять двойной цикл обработки


P>пока решил проблему так поставил две заглушки флага — в обработчиках

P>при входе в процедуру 0 на выходе 1 и соответственно в самой процедуре IF на проверку флага = 0 то не вызывать

P>хотелось бы как то красиво решить вопрос а если обработчиков будет много это что ставить флаги что ли везде


P>т.е. суть в том что обработчики событий пересекаются и проблема.

P>как правильно делать может есть паттерн ?

Что делать если обработка события приводит к генерации этого события? Если раздражают флаги тогда так: в обработчике отключились от прослушивания события, обработали событие, опять подключились.
Программа – это мысли спрессованные в код
Re: Паттерн для обработчиков событий как правильно сделать
От: TK Лес кывт.рф
Дата: 14.11.16 22:21
Оценка:
Здравствуйте, prof3003, Вы писали:

P>т.е. суть в том что обработчики событий пересекаются и проблема.

P>как правильно делать может есть паттерн ?

Опишите это все конечным автоматом
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: Паттерн для обработчиков событий как правильно сделать
От: Mihas  
Дата: 15.11.16 06:04
Оценка:
Здравствуйте, Qulac, Вы писали:

Q>в обработчике отключились от прослушивания события, обработали событие, опять подключились

Тоже так делал по аналогии с ассемблерными прерываниями. Но что-то мне подсказывает, что надо как-то подругому.
Re[2]: Паттерн для обработчиков событий как правильно сделать
От: prof3003  
Дата: 15.11.16 06:42
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, prof3003, Вы писали:


P>>т.е. суть в том что обработчики событий пересекаются и проблема.

P>>как правильно делать может есть паттерн ?

TK>Опишите это все конечным автоматом



спс капать значит в сторону автомата ок спасибо
Re[2]: Паттерн для обработчиков событий как правильно сделать
От: prof3003  
Дата: 15.11.16 06:43
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, prof3003, Вы писали:


P>>т.е. суть в том что обработчики событий пересекаются и проблема.

P>>как правильно делать может есть паттерн ?

TK>Опишите это все конечным автоматом


спасибо — копать в сторону автоматов — попробую не делал ни разу
Re[3]: Паттерн для обработчиков событий как правильно сделать
От: TK Лес кывт.рф
Дата: 15.11.16 08:35
Оценка:
Здравствуйте, prof3003, Вы писали:

P>>>т.е. суть в том что обработчики событий пересекаются и проблема.

P>>>как правильно делать может есть паттерн ?

TK>>Опишите это все конечным автоматом


P>спасибо — копать в сторону автоматов — попробую не делал ни разу


Учитывая, что готовых библиотек полно — набросать прототип и оценить затраты не сложно.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: Паттерн для обработчиков событий как правильно сделать
От: prof3003  
Дата: 15.11.16 09:59
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, prof3003, Вы писали:


P>>>>т.е. суть в том что обработчики событий пересекаются и проблема.

P>>>>как правильно делать может есть паттерн ?

TK>>>Опишите это все конечным автоматом


P>>спасибо — копать в сторону автоматов — попробую не делал ни разу


TK>Учитывая, что готовых библиотек полно — набросать прототип и оценить затраты не сложно.


Уважамый ТК, есть еще небольшой вопрос можно попросить в личку написать

касательно паттерна имел виду вот это idesign.net/ Downloads что из это можно
попробовать использовать для решения вопроса автомата.
Re: Паттерн для обработчиков событий как правильно сделать
От: Vladek Россия Github
Дата: 16.11.16 07:45
Оценка:
Здравствуйте, prof3003, Вы писали:

Мало чего понятно, опишите проблему простым языком.

P>Есть таблица вешаю обработчик на Binding событие когда идет перемещение

Что такое таблица? Контрол? Таблица в БД? Перемещение? Перемена двух строк местами или удаление строки из таблицы?
P>событие срабатывает это понятно и правильно

P>вешаю обработчик на выбор объекта на форме и потом вызываю поиск в таблице binding find — идет соответственно вызов BINDING и обработчика

Тут просто вообще ничего не понятно.
P>и зацикливаются обработчики событий

Я только понял, что есть два обработчика событий, которые как-то зависят друг от друга. В большинстве случаев нет никаких проблем с этим разобраться, но из описания проблемы контекст вообще не ясен.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.