假設我有一個ListBox
,它綁定到我的視圖模型上的可觀察集合,其中數據項是一個簡單的類,它具有Name
和Value
屬性。Silverlight:無法通過INPC強制更新綁定到集合?
當我添加或刪除視圖模型集合項,列表框會自動更新爲我所期望的。但是,如果我更改數據項的名稱,我還希望ListBox也會刷新,因此在更新代碼中的名稱後,我提出了視圖模型屬性的屬性更改,該屬性公開可觀察集合。但是ListBox不會更新。
就好像綁定在說,好,你給我(集合本身)的對象是一樣的最後一個過來人,所以並沒有什麼變化,有嗎?愚蠢的程序員,告訴我刷新時,我不需要!
只有一對夫婦的方式我已經找到了解決此問題:
- 提高從集合本身就是一個明確的復位通知(需要的ObservableCollection的子類來做到這一點)
- 重新創建列表採用了全新的觀察集合,然後提高性能的變化 - 收集對象現在是不同的,所以綁定更新
這些都不兩種方式是理想的,雖然第一種方法是絕對理想 - 我真的不應該很難得到一個列表框來更新!
任何人都可以解釋爲什麼綁定工作,這樣一來,如果有什麼辦法去改變,這樣的結合會一直在屬性更改通知更新,無論來源是否有變化?
啊,當然 - 我認爲這將是一些簡單。 – Sam