2010-06-24 28 views
1

Wihtin我當前的項目我必須將數據項添加到列表<>對象。我使用的是一個列表,因爲它是從外部類型派生的,並且由於其他應用程序如何使用它,因此我無法請求將該類型從List更改爲ObservableCollection。所以截至目前,我被卡在名單<>用於我的存儲收藏。由於List <>在項目添加時不會自動更新UI,所以我想知道如何去調用此更新? 在此先感謝如何在項目添加到列表時自動更新UI <>

+0

'List '當內容改變時不會提供任何通知。除非你有某種獲取這些通知的方式,否則你會被卡住。 如果您有辦法獲得通知(例如通過單獨的事件),那麼這可能是可行的 - 但它有助於更​​多地瞭解您的代碼。你在使用ViewModel嗎?它是否實現INotifyPropertyChanged? – 2010-06-24 13:06:04

+0

沒有沒有視圖模型,因爲你知道列表不會調用InotificationProperty或Colleciton。我最終創建了一個可觀察集合來處理更新。 – rlcrews 2010-06-24 16:44:11

回答

6

創建一個ObservableCollection<T>超出列表並將其綁定到UI元素。

+0

打我吧,這是我使用的方法,每當我需要訂閱列出我的用戶界面上的事件等。 – 2010-06-24 12:47:05

0

如果您正在使用ViewModel並實現INotifyPropertyChanged,就像拋出PropertyChanged事件一樣簡單,只需將名稱列表<>屬性作爲propertyName參數引發即可。

PropertyChangedEventHandler handler = this.PropertyChanged; 

if (handler != null) 
{ 
     var e = new PropertyChangedEventArgs(propertyName); 
     handler(this, e); 
} 
+0

謝謝安迪這是一個偉大的觀點。有了這個項目,我仍然在模型視圖展示器模式中工作,我正在努力獲得MVVM模式。這是一個很好的提示,並指向前進的參考。 感謝yoU! – rlcrews 2010-06-24 16:48:01

相關問題