【问题标题】:Managing silverlight RIA services context lifetime管理 silverlight RIA 服务上下文生命周期
【发布时间】:2009-12-11 10:00:52
【问题描述】:

我正在开发一个业务线 Silverlight 应用程序,我需要一条有关管理 RIA 服务上下文生命周期的建议。

应用程序 - 经过一些简化 - 是一个大选项卡控件的构建。开头有 2 个选项卡:客户列表和发票列表。这些是带有过滤/排序之类的普通数据网格。 用户可以选择一行并双击添加/编辑客户或发票。然后使用客户或发票的详细信息创建新选项卡。用户可以打开许多带有不同客户/发票的选项卡。编辑完成后,用户可以保存并关闭选项卡,也可以放弃编辑并关闭。

问题是如何处理数据上下文。

我应该为客户列表创建一个,为发票列表创建一个,当用户打开一个新选项卡时,我只需将客户/发票数据对象绑定到控件?这样做的好处是我不需要在保存更改后刷新网格。 编辑:这有一些缺点。用户可以刷新网格 - 打开详细信息选项卡会发生什么?用户还可以过滤网格,以便可以从 datactx 中删除一些正在编辑的记录?

另一种方法是为每个 tabitem 创建 datacontext。这更安全,但我需要处理刷新网格。

我不知道哪种方法更好,或者是否还有其他选择?

【问题讨论】:

    标签: silverlight wcf-ria-services


    【解决方案1】:

    在每种情况下使用一个 ObservableCollection 列表,它会在项目更改时自动更新数据网格。

    【讨论】:

    • 是的,我正在使用 ObservableCollection 和 INotifiyChange。然后,当用户在单独的选项卡上更改详细信息时,我的网格会自动刷新。我的问题是,将一个数据上下文用于整个应用程序和后续编辑是否安全。
    • DataContext 中的主要内容是 DataSource,在本例中是您的 ObservableCollection。将其用作多个 UI 元素的数据源是安全的。如果您还有多个线程在 ObservableCollection 上运行,那么您将需要采取正常的预防措施,例如确保任何时候只有一个线程可以更新它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2011-05-09
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多