2009-07-31 9 views
0

代理人を使用してマルチビューのアクティブなインデックスを変更しようとしていますが、期待通りに動作しません。代理人はページを更新しません

これは私のコードperformAfterWaitデリゲートSetIndex()メソッドを指す

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

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

あります。 performAfterWaitデリゲートがSetIndex(呼び出され

)が呼び出されるが、SetIndex()はthis.mvwTest.ActiveViewIndex 1.

に等しいものに戻り戻ったとき、私はSetIndex()メソッドを呼び出すときしかし、直接これを設定します.mvwTest.ActiveViewIndex = 0となり、メソッドが返っても変更は持続します。 performAfterWaitデリゲート がSetIndex(呼び出されます

+0

ucWaitPageとは何ですか、FinishedWaitingイベントを発生させるものは何ですか(イベントであると仮定します)。 –

答えて

0

) と呼ばれるが、SetIndex()が返すとき this.mvwTest.ActiveViewIndex 1.

どのようにあなたがこれを確認しますと同じであることに を元に戻します、あなたはDebug.WriteLine(this.mvwTest.ActiveViewIndex)を呼び出し関数の後に置くことができますか?

ところで、あなたはそのメソッドを呼び出すためにinvokeを使いたいですか?デリゲートをテストしたいだけですか?あなたが同じスレッドから依然として呼び出しているなら、私は利点を見ません。

関連する問題