Делегат не будет обновлять страницу - PullRequest
0 голосов
/ 31 июля 2009

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

это мой код

        protected void ucWaitPage_FinishedWaiting(PerformAfterWaitDelegate performAfterWait)
    {
        performAfterWait.Invoke();
        this.SetIndex();
    }

    private void SetIndex()
    {
        this.mvwTest.ActiveViewIndex = 0;
    }

Делегат executeAfterWait указывает на метод SetIndex ().

Когда вызывается делегат executeAfterWait, вызывается SetIndex (), но когда SetIndex () возвращает this.mvwTest.ActiveViewIndex возвращается к 1.

Однако, когда я вызываю метод SetIndex () напрямую, он устанавливает this.mvwTest.ActiveViewIndex = 0, и изменение сохраняется, когда метод возвращается.

1 Ответ

0 голосов
/ 31 июля 2009

Когда делегат executeAfterWait вызывается SetIndex () вызывается но когда SetIndex () возвращает this.mvwTest.ActiveViewIndex возвращает быть равным 1.

Как вы можете это проверить, можете ли вы поставить Debug.WriteLine (this.mvwTest.ActiveViewIndex) после функции invoke?

Кстати, что вы хотите использовать invoke для вызова этого метода? Вы просто хотите протестировать делегата? Я не вижу преимущества, если вы все еще звоните из того же потока.

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