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,通过在网格的空底部行添加新项,可以按预期工作。
请建议。

WPF实体框架绑定

您似乎没有在任何地方调用数据上下文对象上的SaveChanges。我本以为你的代码应该看起来更像这样:

db.Product.Add(new Product() { ProductCode = "", Description = "" });
db.SaveChanges();

有关在实体框架中添加实体的更多帮助,请参阅MSDN上的添加/附加和实体状态页面。