例如,我有一些指示对象状态的集合的可观察对象(我通过 REST API 定期获取它)。
class User
{
int Id { get; }
string Name { get; }
string Status { get; }
}
IObservable<User> source;
我想创建一个DynamicCache对象并在每次source给我一个新结果时更新它。所以我写道:
var models = new SourceCache<User,int>(user => user.Id);
models.Connect()
.Transform(u => new UserViewModel() {...})
...
.Bind(out viewModels)
.Subscribe();
source.Subscribe(ul => models.EditDiff(ul, (a, b) => a.Status == b.Status));
但是现在每次用户更改其状态时,.Transform(...)方法都会创建一个 的新实例UserViewModel,这不是所需的行为。
当具有相同 Id 的源项发生更改而不是每次都创建一个新项时,我能否以某种方式确定更新现有 ViewModel 属性(在派生集合中)的规则?
慕容森
相关分类