WPF实体框架绑定
本文关键字:绑定 框架 实体 WPF | 更新日期: 2023-09-27 18:07:46
我正在遵循本教程,并尝试使用Editable ComboBox
而不是教程中演示的DataGrid
来实现Data Binding
。
我遇到的唯一问题是,我不能以这种方式向数据库添加新项目。
我是这样加载数据的:
private DbEntities db = new DbEntities();
private void Window_Loaded(object sender, RoutedEventArgs e)
{
CollectionViewSource productViewSource =
((CollectionViewSource)(this.FindResource("productViewSource")));
db.Product.Load();
productViewSource.Source = db.Product.Local;
}
,在Button_Click
事件中,我尝试了以下方法,但没有成功:
db.Product.Add(new Product() { ProductCode = "", Description = "" });
db.Product.Load();
productViewSource.Source = db.Product.Local;
productComboBox.Items.Refresh();
productViewSource.View.MoveCurrentToLast();
:
ListCollectionView lcv = productComboBox.ItemsSource as ListCollectionView;
lcv.AddNewItem(new Product() { ProductCode = "", Description = "" });
lcv.MoveCurrentToLast();
使用默认DataSource
模板提供的DataGrid
,通过在网格的空底部行添加新项,可以按预期工作。
请建议。
您似乎没有在任何地方调用数据上下文对象上的SaveChanges
。我本以为你的代码应该看起来更像这样:
db.Product.Add(new Product() { ProductCode = "", Description = "" });
db.SaveChanges();
有关在实体框架中添加实体的更多帮助,请参阅MSDN上的添加/附加和实体状态页面。