0

在我的 MainPage.xaml 中,我有一个 ListBox,其数据模板如下所示:

<DataTemplate>
<TextBlock Name="DateTextBlock"  Text="{Binding Modified,  Converter={StaticResource RelativeTimeConverter}}"/>           
</DataTemplate>        

当应用程序启动时,转换完成一次,然后直到我重新启动应用程序,文本块的文本保持不变,即使我导航到另一个页面并返回 MainPage.xaml 。

我想要的只是不断地使用转换器,而不仅仅是在 Modified 属性更改时使用一次,以显示时间在流逝,因为用户正在使用我的应用程序。这怎么可能实现?

4

1 回答 1

0

你使用INotifyPropertyChanged吗?请参阅这篇文章,非常清楚地解释数据绑定。

编辑:根据您使用 INotifyPropertyChanged 的​​评论中的新信息,但搜索通知 UI 属性的解决方案已定期更改。所以考虑使用某种计时器,例如DispatcherTimer

DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(4);
timer.Tick += delegate(object s, EventArgs args)
{
    foreach (YourItem item in ViewModel.Items)
    {
        item.NotifyPropertyChanged("Modified");
    };
}
timer.Start();

另外(当然)将此方法添加到 YourItem 类:

public void NotifyPropertyChanged(string propertyName)  
{
    OnPropertyChanged(propertyName); 
}
于 2012-12-13T12:19:10.747 回答