Один шаблон событий для нескольких элементов управления - PullRequest
1 голос
/ 30 ноября 2008

У меня есть несколько элементов управления на странице. Это страница Silverlight, но я не думаю, что это имеет значение для этого вопроса.

При изменении значения элемента управления возникает событие изменения. В этом случае я делаю расчет и изменяю значение одного из других элементов управления. Это, в свою очередь, заставляет другой элемент управления вызывать измененное событие, что, в свою очередь, приводит к тому, что вычисление (избыточно) выполняется снова.

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

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

Как бы вы помешали сделать второй расчет?

1 Ответ

1 голос
/ 30 ноября 2008

Булевый флаг тоже, я думаю ... Не знаю, почему он не сработал для вас. Это было бы что-то вроде этого:

private bool InEvent = false;
public void MyEventHandler(object sender, EventArgs e)
{
    if ( InEvent )
        return;
    InEvent = true;
    // Do stuff here
    InEvent = false;
}

Вы можете где-нибудь использовать оператор блокировки, если боитесь многопоточности, хотя я не думаю, что это так. Кроме того, вы можете попробовать ... наконец-то, чтобы убедиться, что InEvent всегда имеет значение false в конце.

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