使用MVVM,我的viewmodel是我的WPF窗口的數據上下文。在viewmodel中是一個可觀察的集合,它將項目保存在列表框中。當我將項目添加到集合中時,列表框按預期進行更新如何在更改對象引用後停止WPF DataContext失敗?
作爲我的通用撤消函數的一部分,可以將observablecollection替換爲較舊的版本。這通過將集合傳遞給引用方法並更改引用來實現。撤消之後的所有內容除了列表框之外都能正常工作。這繼續顯示來自舊參考的數據。
我該如何阻止這種情況發生,或者改變datacontext使用的引用,以便我的列表框被「取消」並繼續工作?
問題不在於沒有變更通知。當我向集合中添加更多項目時,它們會停止顯示,因爲列表框會記住舊的參考。 – Jimbob 2011-03-13 22:04:18
...如果我在窗口的代碼中手動重置ItemsSource,它仍然可以工作。但是這對MVVM來說不是很好! – Jimbob 2011-03-13 22:14:41
@Jimbob - 在ViewModel中提高PropertyChanged會更好。 – 2011-03-13 22:24:26