我正在开发一个业务线Silverlight应用程序,我需要一些关于管理RIA服务上下文生命周期的建议。
应用程序 - 经过一些简化 - 构建了一个大的选项卡控件。开头有2个选项卡:客户列表和发票清单。这些是具有过滤/排序的简单数据网格和那种东西。 用户可以添加/编辑客户或发票,选择一行并双击。然后创建新选项卡,其中包含客户或发票的详细信息。用户可以打开包含不同客户/发票的多个选项卡。编辑后,用户可以保存并关闭标签,或者只是放弃编辑和关闭。
问题是如何处理数据上下文。
我应该为customerlist创建一个,为invoicelist创建一个,当用户打开一个新选项卡时,我只需将customer / invoive dataobject绑定到控件上?这有一个优点,我保存更改后不需要刷新网格。 编辑:这有一些缺点。用户可以刷新网格 - 打开详细信息选项卡会发生什么?用户还可以过滤网格,以便可以从datactx中删除正在编辑的某些记录吗?
另一种方法是按每个tabitem创建datacontext。这样更安全,但我需要处理刷新的网格。
我不知道哪种方法更好或者可能还有另一种选择?
答案 0 :(得分:0)
在每种情况下使用一个ObservableCollection列表,它会在项目更改时自动更新datagrids。