【发布时间】:2011-08-17 12:51:07
【问题描述】:
我的大脑一直在试图解决我遇到的问题,而一些帮助将大有帮助。
我有一个从 WCF 服务下载数据结构的应用程序,数据存储在可观察的集合属性中。我有一个包含网格的用户控件,并且绑定在用户控件初始化程序上或通过x:Static 数据绑定。用户控件或 observable 集合属性可以在同一台机器上多次访问。
如果我打开了多个用户控件实例并使用网格修改了一条记录,我将更改发送到 WCF 服务,该服务修改 SQL 数据库,向修改后的对象添加一些位并将其传递回 WPF(也许将来通过回发到其他客户端应用程序)应用程序和网格更新。然而,它只在那个特定的用户控件网格上更新。
如果我强制其他用户控件网格重新绑定,则会反映数据更改,这不是我想要的。所以我决定使用 LINQ 在 observable 集合中查找要修改的对象,然后使用 IList.IndexOf 将对象添加到集合中,并删除旧对象。执行此方法似乎确实可以正常工作,但我一直在读到有更好的方法来实现这一点。
任何人都可以帮助阐明我正在尝试实现的目标,或者我已经完成通知所有绑定网格更改已正确/仅执行此操作的方式,我的所有属性都在该值上实现 inotifypropertychanged。
提前致谢
【问题讨论】:
-
谁托管 ObservableCollection?
-
ObservabeCollection 是使用存储在 SQL 数据库中的数据从 WCF 服务生成的,该数据被发送到应用程序并作为静态属性存储在客户端计算机上的静态类中,作为本地缓存副本,网格已绑定
-
请提供一些代码。集合是如何创建的?它是如何实现的?网格是如何与它绑定的?
标签: wpf wcf observablecollection inotifypropertychanged