2011-02-13 80 views
2

我有(我認爲)一個相當傳統的WPF應用程序。ObservableCollection中的項目替換不會更新WPF ItemsControl

我已經

<ListBox ItemsSource="{Binding MyList}" ... 

MYLIST是

ObservableCollection<MyItem> 

MyItem沒有實現INotifiyPropertyChanged

當我Add項目到OC,用了問題的UI更新。 當我更換項目,通過

MyList[index] = newItem; 

的UI更新只偶爾。 有時在窗口上選擇另一個控件有幫助,但通常不會。更新以每秒5個左右的速度到達。如果重要的話,這是Win7 x64機器上的WPF 4。

回答

2

這使得完全沒有意義的我,替換被ObservableCollections註冊和我沒有任何問題,它到目前爲止...

我懷疑的錯誤在於somwhere人。

例如意外地更換自己的項目,破壞綁定到數據,這樣的事情......

在旁註,如果你曾經遇到發生有時錯誤很可能會在你自己的代碼邏輯行爲因爲有時指向通常不應在任何體面框架中遇到的不確定行爲。

3

我的猜測是你最好用Remove()Insert(index, item)而不是分配給索引項。刪除和插入項目必須引發CollectionChanged委託。

+0

不,這應該沒有什麼區別,`CollectionChanged`也注意替換。 – 2011-02-13 16:55:03

+1

我不知道_why_,但這個竅門 – 2011-02-13 18:15:10

相關問題