• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
无忧岛主
实践是检验真理的唯一标准
博客园    首页    新随笔       管理    订阅  订阅
silverlight 数据库更新,UI控件同步更新

UI和他绑定的数据模型和数据库(Model) 是分离的三个层面的东西。 我们INotifyPropertyChanged实现的是数据模型到绑定UI的一个通知功能,然后让UI绑定能够去拿到更新后的数据模型的新值。

但是,数据库和数据模型之间是一个单向的关系,都是数据模型去查询去更新数据库,数据库并不会主动地更新和通知数据模型,这个是非常明确的。

所以只用INotifyPropertyChanged是无法实现当数据库更新,UI控件同步的更新。

第一种方法:目前我采用的方法是:利用Timer或者dispatcherTimer。通过定时地查询数据库,来更新数据模型。 一旦数据库更新了,在一个查询周期后,查询到了新的值,数据模型更新就可以同时通知UI去更新UI。

但是这种方法有一个缺点那就是不断隔一段时间查询数据库。影响程序响应速度和性能,也会加大客户端下载量。也很费服务器的流量。

第二种方法: 用FileSystemWatcher这个类监视数据文件。比如监视sql server .mdf,.ldf文件。xml文件。但是这也有一定局限那就是如果数据库文件存放的服务器如果和web服务器不在同一个服务器。就没法监视了。

目前还没有更好的方法。如果哪位有更好的方法请不吝赐教。

 

 

如果本文引用了你的文章而未注明,请及时联系我。
posted on 2013-01-23 21:36  无忧岛主  阅读(871)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3