2011-05-13 71 views
0

我有一個表的MS SQL Server數據庫 - 人民。從這些數據庫生成實體框架數據模型。 在WPF應用程序中,我有ListBox與ItemSource = DataModel.Entities.Peoples和兩個按鈕 - 添加和刪除數據庫中的人。 添加按鈕:實體框架上的WPF綁定

DataModel.Entities.AddPeople(new People("test")); 
DataModel.Entities.SaveChanges(); 

和刪除:

DataModel.Entities.Remove((People)listBox1.SelectedItem); 
DataModel.Entities.SaveChanges(); 

當我點擊刪除按鈕 - 相當於人行從數據庫和listBox1中取出清爽。但是,當我點擊添加按鈕 - 數據庫中添加人員(請參閱MS SQL企業管理器),但列表框不刷新。

如何刷新listBox添加?猜猜我忘了在DataModel中設置任何選項?

+0

什麼是您的XAML綁定? – Rachel 2011-05-13 13:38:27

+0

listBox1.ItemSource = DataModel.Entities.Peoples; – 2011-05-13 13:43:04

+0

沒有XAML綁定。在列表框中使用覆蓋People.ToString()和所有工作正確 – 2011-05-13 13:43:37

回答

2

除非DataModel.Entities.PeoplesObservableCollection,它不會意識到變化。

我建議你爲此使用MVVM模式,它完美地解決了這個問題。

+0

不,它不是可觀察的集合,但可能繼承自ObservableCollection <>。但是爲什麼在刪除元素後刷新列表框並在插入後不刷新。 – 2011-05-13 16:32:45

+1

我敢打賭,這是一個很好的觀點Entity Framework不會在添加時自動刷新(但必須在移除時不會導致奇怪的錯誤)。嘗試告訴它刷新你的人民,看看它是否爲你解決它。 – 2011-05-13 18:07:11