2009-07-31 12 views
0

Ich versuche, den aktiven Index einer Multiview mit einem Delegaten zu ändern, und es funktioniert nicht wie ich es erwarte.Delegat wird nicht aktualisiert Seite

dies ist mein Code

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

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

Der performAfterWait Delegierter verweist auf die SetIndex() -Methode.

Wenn der performAfterWait Delegierten SetIndex wird aufgerufen() aufgerufen wird, aber wenn SetIndex() gibt this.mvwTest.ActiveViewIndex kehrt gleich 1 zu sein

jedoch, wenn ich die SetIndex nennen() Methode direkt setzt diese .mvwTest.ActiveViewIndex = 0 und die Änderung bleibt bestehen, wenn die Methode zurückkehrt.

+0

Was ist ucWaitPage und was löst das FinishedWaiting-Ereignis aus (unter der Annahme, dass es sich um ein Ereignis handelt?) –

Antwort

0

Wenn der performAfterWait Delegat wird aufgerufen SetIndex() wird genannt, aber wenn SetIndex() gibt this.mvwTest.ActiveViewIndex kehrt zu 1.

gleich sein wie Sie dies tun überprüfen , können Sie Debug.WriteLine (this.mvwTest.ActiveViewIndex) nach der Invoke-Funktion?

Übrigens, was willst du verwenden, um diese Methode aufzurufen? Willst du den Delegierten nur testen? Ich sehe den Vorteil nicht, wenn Sie immer noch aus demselben Thread anrufen.

Verwandte Themen