这个问题似乎很简单,但我没有找到对这个问题的回答。
我的项目列表运行良好,绑定到我的 MVVM。当我更新一个元素时,一切都很好地协调,变化被反映等等。
我的一个字段是根据当天计算的。所以,如果用户按下 HOME 并退出 App,明天他回来,列表没有刷新,它显示的是前一天的数据。
为了解决这个问题,我想在使用OnNavigatedTo
和OnNavigatedFrom
事件中,在开始时保存“入口”日期并将其与OnNavigatedTo
事件中的当前日期(在恢复应用程序时触发)进行比较。检测到这一天的变化,我可以明确地刷新列表。
问题是,我如何刷新列表?或者,也许我让事情变得复杂了一点,并且有更好的方法来做到这一点。
编辑:最终解决方案。
对于那些需要相同功能的人,这是我找到的解决方案:
// Declare this var in the MainPage class
// Holds the starting app day. If when going back to this page it has changed, refresh the list
private DateTime loadDate;
// Save the current day. If when going back to here it has changed, refresh the list
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
{
loadDate = DateTime.Today;
}
// Read the current day and compare with saved. If when going back to here it has changed, refresh the list
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
// Read the current day and compare
if (loadDate != DateTime.Today)
{
// The day has changed. Loop the list to refresh every item
foreach (Item item in listBoxControl.Items)
{
item.CalculateMyOwnFieldNotBindedToDB();
}
}
}