微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ObservableCollection优于ObjectSet

如何解决ObservableCollection优于ObjectSet

| 为什么更好地(在WPF,C#,实体框架中)将“ 0”绑定到在“ 2”(从实体框架)上创建的“ 1”而不是直接绑定到“ 2”? 还有一个问题: 当我将
ListBox
绑定到
ObservableCollection
时,集合中的所有添加项都会更新
ListBox
。大。但是ѭ1是在
ObjectContext
(在Entity Framework中)的基础上创建的,并且向集合中添加新项不会将该项添加到上下文中……如何解决此问题?     

解决方法

        ObservableCollection实现ѭ9和ѭ10,WPF都使用elements9和ѭ10将元素重新绑定到UI。因此,您可以将一项添加到ObservableCollection中,并且无需您进行代码交互即可立即更新UI。
ObjectSet
既未实现,因此无法获得此功能。     ,        (请注意您的“另一个问题”) 实体框架4.1提供了一项新功能,该功能在WPF应用程序中特别有用-对象上下文的本地视图。可通过
DbSet<T>
Local
属性使用。
Local
返回一个
ObservableCollection<T>
,其中包含所有the16(类型的实体,这些实体当前已附加到上下文(并且不在状态
Deleted
中)。
Local
很有用,因为它会自动与对象上下文保持同步。例如:您可以运行查询以将对象加载到上下文中。
dbContext.Customers.Where(c => c.Country == \"Alice\'s Wonderland\").Load();
...然后将上下文中的对象公开为ѭ1...
ObservableCollection<Customer> items = dbContext.Customers.Local;
...并将其用作某些WPF ItemsControl的“ 22”。向此集合添加对象或从中删除对象时...
items.Add(newCustomer);
items.Remove(oldCustomer);
...它们会自动添加到EF上下文中/从EF上下文中删除。调用“ 24”将在数据库中插入/删除对象。 同样,向上下文中添加对象或从上下文中删除对象...
dbContext.Customers.Add(newCustomer);
dbContext.Customers.Remove(oldCustomer);
...自动更新
Local
集合并因此触发WPF绑定引擎的通知以更新UI。 以下是EF 4.1中有关“ 12”的概述。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。