我在服務器上有一些JSON API,我想用它來聊天。所以我使用HttpWebRequest, Respond
,...和反序列化爲ObservableCollection<ChatMessage>
。這一切都好。我有我的類被添加到datacontext,該類包含上面的集合(ObservableCollection<ChatMessage> entries
,它綁定到列表框,一切都顯示正常。現在,如果我想在一段時間後重新加載服務器上的文件的內容,我做了我所做的一切第一次和entries
更換收集到新的。但是,這不會致使火災PropertyChanged
或CollectionChanged
和觀點仍難免收舊,所以what's最好的「修復」的呢?將ObservableCollection替換爲另一個未觸發PropertyChanged
1
A
回答
1
從技術上講,你沒有按收藏不會改變 - 它會被一個新的取代,所以CollectionChanged不會被解僱。
你將需要在你的包裝類上實現INotifyPropertyChanged,並且當你替換集合時,激發PropertyChanged前夕nt來通知用戶界面。
另一種解決方案是不取代集合,而是清除其項目並將新條目添加到該集合。您可以通過比較收集(新舊)和添加新條目/刪除那些不再位於新列表中的新條目,以更智能的方式完成此操作。
相關問題
- 1. ObservableCollection如何觸發替換操作?
- 2. WPF ObservableCollection和PropertyChanged
- 3. 如何將一個ObservableCollection設置爲另一個ObservableCollection?
- 4. 將html元素替換爲另一個
- 5. 將SherlockFragment替換爲另一個
- 6. 將ViewModel替換爲另一個ViewModel
- 7. PropertyChanged被觸發,但視圖未更新
- 8. 爲什麼UpdateSourceTrigger在更改ObservableCollection時發生但未替換它?
- 9. WPF - ObservableCollection PropertyChanged事件?
- 10. 替換爲另一個
- 11. WPF觸發/樣式替代另一個
- 12. SQL將另一個值替換爲另一個值
- 13. ObservableCollection的CollectionChanged事件未觸發
- 14. 替換另一個
- 15. PropertyChanged ObservableCollection中ViewModel的事件
- 16. TextBox不觸發PropertyChanged事件
- 17. PropertyChanged事件沒有觸發
- 18. 將一個數據幀列值替換爲另一個值
- 19. 如何將一個GET參數替換爲另一個?
- 20. 將一個文件的值替換爲另一個文件
- 21. htaccess將一個文件夾替換爲另一個
- 22. 將一個片段替換爲另一個片段
- 23. 將一個變量的值替換爲另一個值
- 24. 將一個表格中的值替換爲另一個表格
- 25. 將一個with語句轉換爲一個可觸發if
- 26. 將矩陣的一部分替換爲另一個矩陣
- 27. 觸發將很快被替換
- 28. 將某個短語替換爲另一個短語
- 29. 如何在程序運行時將另一個JPanel替換爲另一個JPanel
- 30. 將IEnumerable轉換爲ObservableCollection