WPF实体框架绑定

时间:2014-06-09 07:29:00

标签: c# wpf entity-framework data-binding

我正在关注this tutorial并尝试使用Data Binding而不是教程中演示的Editable ComboBox来实施DataGrid
我遇到的唯一问题是我不能以这种方式向DB添加新项目 这是我加载数据的方式:

    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();

使用默认DataGrid模板提供的DataSource可以通过在网格的空底行添加新项目来按预期工作。
请指教。

1 个答案:

答案 0 :(得分:0)

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

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

有关在实体框架中添加实体的更多帮助,请参阅MSDN上的Add/Attach and Entity States页面。