2014-05-07 80 views
0

我有Windows Phone 8應用程序,它顯示從服務器(類似於通訊簿)發送的人員照片和他的詳細信息。更新數據綁定集合中的特定項目

我已經實現了這一點,是通過將服務器中的圖像以獨特的名稱存儲在獨立存儲中,然後在數據庫中添加此唯一名稱和個人信息。

我實現了GUI,將數據庫綁定到LongListSelector(使用Observable Collection)。 LongListSelector的項目模板有一個Image控件,我使用ValueConverter類將唯一名稱從數據庫轉換爲圖像的物理位置。當服務器發送更新到個人信息時,我可以簡單地更新數據庫,數據綁定將自動更新UI。直到這裏一切都完美。

現在我有這種情況: 當服務器發送更新的圖像時,我只能更新隔離存儲。 如何讓GUI知道圖像已更新?我不知道如何使用這裏的數據綁定,因爲圖像名稱不會改變,並且數據庫表中沒有更新過程。

除了重新加載整個集合之外,還有其他方法嗎?

回答

3

我想用UI綁定的類就像ViewModel一樣,正在實現INotifyPropertyChanged接口或某個派生類(例如,如果您使用的是MVVM Light,則爲ViewModelBase)。

在這種情況下,您應該使用與圖像控件綁定的屬性的名稱來提高ProperChanged事件(或在MVVM Light中調用RaisePropertyChanged方法),以通知UI數據已更改。轉換器將被再次調用並且圖像將被更新。

+0

是的,我使用ViewModel類並實現INotifyPropertyChanged。我有邏輯來識別被改變的記錄。但現在,我怎樣才能爲該特定項目籌集財產變更事件?請注意,圖像的名稱(存儲在數據庫中)不會更改 – Curious

+0

您應該在更新對象的所有屬性(名稱,人員信息等)的相同位置觸發事件。 –

+0

我的'模型'類中的NotifyPropertyChanged函數是私有的,我從來沒有想過直接從ViewModel類中調用它。你以正確的方式指引我。我公開NotifyPropertyChanged函數,並在我知道圖像更新時從ViewModel調用它。謝謝Olivier。 – Curious

相關問題