绑定DispatcherTimer值在Windows 8网格应用程序中

时间:2013-12-04 09:53:47

标签: c# windows-8 winrt-xaml

有没有办法将DispatcherTimer tick事件绑定到SampleDataSource.cs中SampleDataItem中的一个字段。

我想显示countdowntimer where subtitle在分组视图页面的默认SampleDataItme中的位置。

例如计算我正在使用的12 DEC的剩余时间,并且在字幕字段中我只是放置了函数名称,但它显示了在开始应用程序时12 DEC的剩余时间,之后它变为静态。

 public string CalculateTimeRemaining()
    {
        DateTime daysLeft = DateTime.Parse("12/12/2013 12:00:01 AM");
        DateTime startDate = DateTime.Now;

        //Calculate countdown timer.
        TimeSpan t = daysLeft - startDate;
        int Days = t.Days;
        int Hours = t.Hours;
        int totalH = Hours + (Days * 24); ;
        string countDown = totalH.ToString() + ":" + t.Minutes.ToString() + ":" + t.Seconds.ToString();
        return countDown;
    }

和samplesataitem

 group1.Items.Add(new SampleDataItem("Group-1-Item-3",
                "ABC",
                "CalculateTimeRemaining()",
                "Assets/3.png",
                "Item Description",
                ITEM_CONTENT,
                group1, ));

SampleDataSource.cs是Windwos8的GridApp模板中的默认文件,samplesataitem是由模板生成的。

我试过

DispatchTimer myTimer = new DispatchTimer();

 public MainPage()
    {
        this.InitializeComponent();
        myTimer.Interval = TimeSpan.FromSeconds(1);
        myTimer.Tick += myTimer_Tick;
        myTimer.Start(); 
    }

private void myTimer_Tick(object sender, object e)
    {  var sampleDataGroups = SampleDataSource.GetGroups("AllGroups");       
       groupetItemViewSource.Source = sampleDataGroups   //groupetItemViewSource is CollectionViewSource
     }

有没有办法表明它显示每秒倒计时并在GroupedItemView中每秒更改一次值?

1 个答案:

答案 0 :(得分:0)

您的SampleDataItem需要实施INotifyPropertyChanged,并且TimeRemaining会在DispatcherTimer.Tick事件上更新PropertyChanged属性会引发{{1}}事件以更新绑定。