Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Silverlight中活动页上的调用方法_C#_Silverlight - Fatal编程技术网

C# Silverlight中活动页上的调用方法

C# Silverlight中活动页上的调用方法,c#,silverlight,C#,Silverlight,我正在尝试用Silverlight构建一个时钟应用程序。 我的应用程序有多个页面,一个用于模拟,一个用于数字,一个用于计时器 如果我想有一个单独的类来处理计时,如下所示: private void startTimer() { DispatcherTimer myDispatcherTimer = new DispatcherTimer(); myDispatcherTimer.Interval = new TimeSpan(0,0,1);

我正在尝试用Silverlight构建一个时钟应用程序。 我的应用程序有多个页面,一个用于模拟,一个用于数字,一个用于计时器

如果我想有一个单独的类来处理计时,如下所示:

private void startTimer()
    {
        DispatcherTimer myDispatcherTimer = new DispatcherTimer();
        myDispatcherTimer.Interval = new TimeSpan(0,0,1);
        myDispatcherTimer.Tick += new EventHandler(eachClick);
        myDispatcherTimer.Start();
    }
如何获取显示的当前页面,以便该方法可以使用该页面的事件处理程序


最好的办法是什么?

我真的不明白你到底想做什么。“如何获取当前页面,以便该方法可以使用该页面事件处理程序?”

如果您有三个页面,并且您正在尝试同步这三个页面之间的时间,为什么不创建一个静态计时器类呢

我不知道,也许是这样的:

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();
    }
}
然后,在每个页面中,创建勾号事件时只需订阅它

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

这就是我试图实现的目标。我只是不知道怎么形容它。非常感谢。