Есть таблица вешаю обработчик на Binding событие когда идет перемещение
событие срабатывает это понятно и правильно
вешаю обработчик на выбор объекта на форме и потом вызываю поиск в таблице binding find — идет соответственно вызов BINDING и обработчика
и зацикливаются обработчики событий
и наоборот когда делаю перемещение в таблице делаю поиск объекта на форме и опять двойной цикл обработки
пока решил проблему так поставил две заглушки флага — в обработчиках
при входе в процедуру 0 на выходе 1 и соответственно в самой процедуре IF на проверку флага = 0 то не вызывать
хотелось бы как то красиво решить вопрос а если обработчиков будет много это что ставить флаги что ли везде
т.е. суть в том что обработчики событий пересекаются и проблема.
как правильно делать может есть паттерн ?
Re: Паттерн для обработчиков событий как правильно сделать
Здравствуйте, prof3003, Вы писали:
P>Добрый день! C# P>Прошу помочь не силен.
P>Есть таблица вешаю обработчик на Binding событие когда идет перемещение P>событие срабатывает это понятно и правильно
P>вешаю обработчик на выбор объекта на форме и потом вызываю поиск в таблице binding find — идет соответственно вызов BINDING и обработчика P>и зацикливаются обработчики событий
P>и наоборот когда делаю перемещение в таблице делаю поиск объекта на форме и опять двойной цикл обработки
P>пока решил проблему так поставил две заглушки флага — в обработчиках P>при входе в процедуру 0 на выходе 1 и соответственно в самой процедуре IF на проверку флага = 0 то не вызывать
P>хотелось бы как то красиво решить вопрос а если обработчиков будет много это что ставить флаги что ли везде
P>т.е. суть в том что обработчики событий пересекаются и проблема. P>как правильно делать может есть паттерн ?
Что делать если обработка события приводит к генерации этого события? Если раздражают флаги тогда так: в обработчике отключились от прослушивания события, обработали событие, опять подключились.
Программа – это мысли спрессованные в код
Re: Паттерн для обработчиков событий как правильно сделать
Здравствуйте, Qulac, Вы писали:
Q>в обработчике отключились от прослушивания события, обработали событие, опять подключились
Тоже так делал по аналогии с ассемблерными прерываниями. Но что-то мне подсказывает, что надо как-то подругому.
Re[2]: Паттерн для обработчиков событий как правильно сделать
Здравствуйте, TK, Вы писали:
TK>Здравствуйте, prof3003, Вы писали:
P>>т.е. суть в том что обработчики событий пересекаются и проблема. P>>как правильно делать может есть паттерн ?
TK>Опишите это все конечным автоматом
спс капать значит в сторону автомата ок спасибо
Re[2]: Паттерн для обработчиков событий как правильно сделать
Здравствуйте, TK, Вы писали:
TK>Здравствуйте, prof3003, Вы писали:
P>>т.е. суть в том что обработчики событий пересекаются и проблема. P>>как правильно делать может есть паттерн ?
TK>Опишите это все конечным автоматом
спасибо — копать в сторону автоматов — попробую не делал ни разу
Re[3]: Паттерн для обработчиков событий как правильно сделать
Здравствуйте, prof3003, Вы писали:
P>>>т.е. суть в том что обработчики событий пересекаются и проблема. P>>>как правильно делать может есть паттерн ?
TK>>Опишите это все конечным автоматом
P>спасибо — копать в сторону автоматов — попробую не делал ни разу
Учитывая, что готовых библиотек полно — набросать прототип и оценить затраты не сложно.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: Паттерн для обработчиков событий как правильно сделать
Здравствуйте, TK, Вы писали:
TK>Здравствуйте, prof3003, Вы писали:
P>>>>т.е. суть в том что обработчики событий пересекаются и проблема. P>>>>как правильно делать может есть паттерн ?
TK>>>Опишите это все конечным автоматом
P>>спасибо — копать в сторону автоматов — попробую не делал ни разу
TK>Учитывая, что готовых библиотек полно — набросать прототип и оценить затраты не сложно.
Уважамый ТК, есть еще небольшой вопрос можно попросить в личку написать
касательно паттерна имел виду вот это idesign.net/ Downloads что из это можно
попробовать использовать для решения вопроса автомата.
Re: Паттерн для обработчиков событий как правильно сделать
Мало чего понятно, опишите проблему простым языком.
P>Есть таблица вешаю обработчик на Binding событие когда идет перемещение
Что такое таблица? Контрол? Таблица в БД? Перемещение? Перемена двух строк местами или удаление строки из таблицы? P>событие срабатывает это понятно и правильно
P>вешаю обработчик на выбор объекта на форме и потом вызываю поиск в таблице binding find — идет соответственно вызов BINDING и обработчика
Тут просто вообще ничего не понятно. P>и зацикливаются обработчики событий
Я только понял, что есть два обработчика событий, которые как-то зависят друг от друга. В большинстве случаев нет никаких проблем с этим разобраться, но из описания проблемы контекст вообще не ясен.