2012-11-12 26 views
0

我想在Silverlight中構建一個時鐘應用程序。 我的應用程序有多個頁面,一個用於模擬,一個用於數字,另一個用於定時器。在Silverlight中的活動頁面上的調用方法

如果我想有一個單獨的類來處理的計時如下:

private void startTimer() 
    { 
     DispatcherTimer myDispatcherTimer = new DispatcherTimer(); 
     myDispatcherTimer.Interval = new TimeSpan(0,0,1); 
     myDispatcherTimer.Tick += new EventHandler(eachClick); 
     myDispatcherTimer.Start(); 
    } 

我怎樣才能像顯示,這樣的方法可以使用該頁面的事件處理當前頁面?

什麼是最好的方式去做這件事?

回答

0

我真的不明白你到底想要做什麼。 「我如何獲取當前頁面,以便該方法可以使用該頁面事件處理程序?」

如果您有三個頁面,並且您試圖同步三個頁面之間的時間,爲什麼不創建一個靜態的Timer類。

我不知道,也許是這樣的:

public static class StaticTimer 
{ 
    public delegate void Time(DateTime time); 
    public static event Time Tick = delegate { }; 
    static StaticTimer() 
    { 
     DispatcherTimer myDispatcherTimer = new DispatcherTimer(); 
     myDispatcherTimer.Interval = new TimeSpan(0,0,1); 
     myDispatcherTimer.Tick += (s,e) => Tick(DateTime.Now); 
     myDispatcherTimer.Start(); 
    } 
} 

然後,從每一個頁面,只需訂閱Tick事件,當您創建它。

void AnalogPage_OnLoaded(...) 
{ 
    StaticTimer.Tick += someEventHandler; 
} 
void someEventHandler(DateTime time) 
{ 
    if(thisIsCurrentPage) 
    { 
     clock.Update(time); 
    } 
} 
+0

這就是我試圖完成的。我只是不知道如何描述它。謝謝 – Dan14021