使用Entity Framework和WPF DataGrid进行双向数据绑定

时间:2010-04-23 17:52:50

标签: wpf entity-framework wpfdatagrid

我无法使用WPF 4.0 DataGrid的添加功能自动将Entity Framework实体添加到ObjectContext的EntitySet。这是设置:

数据网格 - > BoundTo - >的ListCollectionView - > BoundTo - > EntitySet的

当我以交互方式向DataGrid添加行时,EntitySet没有添加新实体。但是,更新行的单元格数据实际上会更新绑定实体的属性。

知道我可能做错了吗?

这是ListCollectionView的XAML:

<CollectionViewSource x:Key="FieldList"
    Source="{Binding DB.Fields}"
    CollectionViewType="{x:Type data:ListCollectionView}">
    <CollectionViewSource.SortDescriptions>
        <ComponentModel:SortDescription PropertyName="Name" />
    </CollectionViewSource.SortDescriptions>
</CollectionViewSource>

1 个答案:

答案 0 :(得分:1)

您使用ListCollectionView有什么特别的原因吗?您是如何创建ListCollectionView的?

致电CollectionViewSource.GetDefaultView( ObjectQuery<> )会产生BindingListCollectionView。我刚刚运行了一些测试并调用IEditableCollectionView.AddNew()IEditableCollectionView.CommitNew()按预期将实体添加到实体集中。

我建议您只需将ObjectContext的{​​{1}}属性绑定到ObjectQuery<>的{​​{1}},然后使用默认的集合视图,最终为您提供行为期望的。