這個問題似乎很容易,但我沒有找到這個問題的答案。Windows Phone:刷新綁定列表框「手動」
我有我的項目清單工作完美,綁定到我的MVVM。當我更新元素時,一切都很協調,變化反映出來等等。
其中一個字段根據當天計算。因此,如果用戶按HOME並退出應用程序,並且明天他回來,則列表不刷新,它顯示前一天的數據。
要解決這個問題,我在使用中認爲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();
}
}
}
你能否詳細說明爲什麼上述不起作用?你可以提供一些代碼嗎?這是在堆棧溢出發佈時的標準 –
您的虛擬機是否實現INotifyPropertyChanged? 引發此接口定義的PropertyChanged事件通常用於在MVVM中'刷新'綁定。 – Dmitry
只要確保你在UI線程中提高它。 – Dmitry