我正在使用實體框架4/WPF/C#。 new ObservableCollection<Entity>(context.EntitySet)
綁定到XAML中的WPF DataGrid。這工作正常。但是當我以編程方式創建一個新的實體並將其添加到上下文時,DataGrid保持不變。我該怎麼做才能讓DataGrid更新?在實體框架中綁定不更新DataGrid 4
回答
由於ObservableCollection<T>
在施工過程中僅從實體集合中獲取這些值,因此您沒有看到更新。對實體集的所有其他更改均未「觀察到」。
只有致電ObservableCollection<T>.Add
(等)纔會生成CollectionChanged
事件。
太棒了,你已經救了我一天。 – Cartesius00 2011-05-25 19:01:13
我沒有看到silverlight提到所以我猜你沒有使用RIA服務。 你如何將對象添加到上下文中? .AddTo {EntitySetName]() 或{} EntitySetNme。新增()
如果直接綁定到數據上下文,我相信後面的選項是你最好的選擇。 就我個人而言,我會避而不談,因爲您的表示層直接與您的數據層交談。您應該在處理添加實體的UI層(業務層)與UI綁定集合和持久性之間建立一個分隔線。
我綁定到ObservableCollection(context.EntitySet)。我的新實體在上下文中是正確的,但DataGrid沒有更新。我正在使用MVVM模式。 – Cartesius00 2011-05-25 16:17:12
以及它的所有權利;)數據網格應該如何知道您將項目添加到您的上下文中?如果向可觀察集合中添加項目,只會通知數據網格。
所以如果你添加項目做你的上下文,只需爲你的集合屬性調用OnPropertyChanged(「YourEntityCollectionPropertyHere」)。
聽起來不錯,但不起作用。我在上下文中添加了實體,上面沒有任何ObservableCollection,然後調用PropertyChanged(「MyObservableCollection」)並沒有任何反應。請,你有任何其他的想法? – Cartesius00 2011-05-25 17:46:08
正如sixlettervariables所說,您使用的構造函數將獲取context.EntitySet值並將它們全部添加到新的ObservableCollection中。添加你的context.EntitySet不會添加到項目的重複列表。
你能展示你的EntitySet是如何定義的嗎?是否有可能使其成爲ObservableCollection並直接綁定到它?
- 1. 實體框架和WPF Datagrid綁定
- 2. 實體框架4多對多綁定
- 3. 實體框架4更新子集合
- 4. 更新實體框架4-4.5
- 5. 實體框架4級聯更新?
- 6. 實體框架更新表4/mvc 3!
- 7. 實體框架4多對多更新
- 8. 更新WPF的Datagrid綁定到實體框架視圖(SQL Server)的更新基礎實體(表)後
- 9. 如何更新實體在實體框架4 .NET
- 10. 實體框架4約定
- 11. WPF綁定到實體框架不更新
- 12. WPF實體框架綁定到導航屬性不更新
- 13. 更新實體框架中的實體
- 14. 實體框架綁定到DataGrid中的WPF麻煩
- 15. 綁定實體框架winfoms
- 16. WPF實體框架綁定
- 17. 實體框架Datagridview綁定
- 18. WPF綁定實體框架
- 19. 綁定到實體框架
- 20. Silverlight 4 Datagrid在新實體添加到DomainContext的實體集時不會更新。 (綁定的問題?)
- 21. 綁定到實體「實體框架」
- 22. 實體框架更新?
- 23. 實體框架 - 在「更新模型」後定位新實體
- 24. 更改實體框架中的ConnectionString 4
- 25. 實體框架4 POCO如何更新實體?
- 26. 實體框架4
- 27. 實體框架4
- 28. 當實體更新時,實體框架不更新外鍵
- 29. 更新實體不更新導航屬性 - 實體框架
- 30. 在實體框架4
你能告訴我們XAML的綁定和數據上下文對象的代碼嗎? – user7116 2011-05-25 16:15:23