【问题标题】:Updating items of ReactiveCollection<MyRecordType> right before adding new items to the collection在将新项目添加到集合之前更新 ReactiveCollection<MyRecordType> 的项目
【发布时间】:2012-11-27 07:49:54
【问题描述】:

我正在为我当前的项目评估 ReactiveExtensions 和 ReactiveUI。两者看起来都非常有前途。但是,我刚刚遇到了以下问题。我有一个名为 RecordSet 的类型,它定义了一个名为 Records 的 ReactiveCollection 的只读属性。我需要处理要添加到集合中的每个记录项的一些属性,以及在将新项添加到集合之前已经在集合中的其他项。一些操作基于集合中已经存在但不包括要添加的项目的项目总数。我试图观察 _records.BeforeItemsAdded 但由于某种原因 OnNext() 回调调用“为时已晚”(在集合中的项目计数已经等于最终添加到集合中的项目总数之后)。什么是推荐的 Rx 模式来解决这样的问题?

【问题讨论】:

    标签: .net system.reactive reactiveui


    【解决方案1】:

    您没有在 BeforeItemsAdded 中收到要更新的项目吗?为什么不直接更改该对象?

    更新:不幸的是,我怀疑在这个版本的 RxUI 中 BeforeItemsAdded 没有办法做到这一点,因为 BeforeItemsAdded 总是在 UI 线程上运行。在 RxUI 4.1(即将发布)中,情况并非如此。

    与此同时,您可能需要在致电Add 之前进行物品修复。

    【讨论】:

    • 是的,我确实得到了该项目,但我需要根据集合中已有多少项目来更新项目属性。但是,集合计数始终等于最终在集合中的最大记录数。换句话说,当我将 4 条记录添加到集合中时,当第一次调用 BeforeItemsAdded OnNext() 时,此时集合 Count 已经 = 4。
    • 这是什么版本的 RxUI?
    • 我正在使用从 2012-09-27 下载的源代码构建的二进制文件。
    • 汇编版本号是多少?
    • 保罗,感谢您的帮助。下一个稳定版本 (4.1) 计划何时发布(实际上)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多