У меня есть функция, предназначенная для того, чтобы мой пользователь мог переместить набор объектов (аэропорт) в новое место.
В диалоговом окне, что для этого у меня есть четыре элемента управления - два текстовых поля, которые представляют координаты, и два числовых спада вверх, один для расстояния и один для направления. Пользователь может выбрать либо расстояние и азимут, либо набор координат. Это делается с помощью флажка, и неиспользуемый набор отключен. Чтобы у пользователя была обратная связь, я бы хотел обновить значения отключенной пары, когда пользователь вводит активированную пару. Если они вводят координаты, то расстояние и направление обновляются, и наоборот.
Мой метод для этого - ответить на событие TextChanged каждого объекта, чтобы обновить остальные. Конечно, это создает одно событие, запускающее другое и возвращающееся обратно при обновлении другого элемента управления. Насколько я могу судить, он не создает бесконечный цикл, но портит позицию каретки в активных полях.
Я пробовал несколько подходов, включая попытки отключить события, основанные на том, какие блоки активны, или использование некоторых флагов bool. Я также попытался использовать таймер, а не события. Это все очень грязно, и никакой подход не работает. Я хотел бы знать, есть ли лучший способ.
Спасибо