随着时间的推移刷新页面上的信息?

时间:2012-05-17 15:49:54

标签: c# windows-phone-7

我有一个主页面,它根据currentTime从本地xml文件中获取信息。

当应用程序启动时,它会检查当前时间并根据它获取正确的xml值并在textblock中显示它。但它确实没有更新。我正在考虑在页面上放置一个刷新按钮,但更聪明的头部建议使用DispatchTimer或Timer。我应该使用什么,我应该把代码放在哪里?我是非常基本的用户,所以如果您可以具体并提供代码示例,那将非常感激。

谢谢你们:)我的一小部分代码。

    var obj = filteredData.First();

    TimeSpan currentTime = myDay.TimeOfDay;
    string result = String.Empty;
    string Prayer = String.Empty;

    if (currentTime >= obj.Fajr && currentTime < obj.Sunrise)
    {
        result = "Fajr";
        Prayer = obj.Fajr.ToString(@"hh\:mm");

    }
    else if (currentTime >= obj.Sunrise && currentTime < obj.Zohr)
    {
        result = "Sunrise";
        Prayer = obj.Sunrise.ToString(@"hh\:mm");

    }

    textBlock3.Text = result;
    textBlock4.Text = Prayer;

1 个答案:

答案 0 :(得分:0)

使用视图模型和后台线程可以更好地解决这个问题,所以某些就像:

public class PrayerViewModel : DependencyObject
    public PrayerViewModel ()
    {
         // TODO: Start off a new thread that Raises the PropertyChanged() Event for each property at the right time
    }

    public string Result
    {
         get
         {
            TimeSpan currentTime = myDay.TimeOfDay;
            if (currentTime >= obj.Fajr && currentTime < obj.Sunrise)
            {
                return "Fajr";
            }
            else if (currentTime >= obj.Sunrise && currentTime < obj.Zohr)
            {
                return "Sunrise";
            }
        }
    }
    public string Prayer
    {
         get
         {
            TimeSpan currentTime = myDay.TimeOfDay;
            if (currentTime >= obj.Fajr && currentTime < obj.Sunrise)
            {
                Prayer = obj.Fajr.ToString(@"hh\:mm");
            }
            else if (currentTime >= obj.Sunrise && currentTime < obj.Zohr)
            {
                Prayer = obj.Sunrise.ToString(@"hh\:mm");
            }
        }
    }
}