none
wpf ObservableCollection 更新数据源的问题 RRS feed

  • 问题

  • 我从数据库读出数据,然后用ObservableCollection<T>包装,UI元素再binding 到 ObservableCollection<T>实例(ob)上. 现在UI元素对 ob做了更新(添加 删除),问 怎么才能让 ob更新数据库呢????
    2011年1月27日 8:23

答案

  • 要把客户端上做的(增/删/改)操作传递到数据库,必须要有一种机制来监控哪些数据被改动,也就是所谓的Change-Tracking. 然后只把改动的(增/删/改)的数据通过网络传递到服务器端进行实际的数据库更新操作。

    WCF RIA Services的DomainContext起着监控数据改动的作用。

    ObservableCollection是和客户端view紧密结合的。也就是实现了INotifyCollectionChanged接口,数据集中有增加/删除时可以立即通知UI更新自己。但监控数据更改(Change-Tracking),以备将来把客户端上做的增删改操作汇集起来通知服务器端应该不是它的职责范围。

    我不知道现在的WPF4是否可以用到WCF RIA Services,但怎么也得有个执行Change-Tracking的家伙,DataSet可以做到,纯WCF可能也提供了ObjectTracking机制。

     

    • 已标记为答案 Mog Liang 2011年2月3日 9:02
    2011年1月27日 19:35