[英]Equivalence in ReactiveUI?
我在ReactiveObject中具有此屬性:
bool IsValid => Children.All(child => child.IsValid);
問題是,當然,在修改子項(它們的“ IsValid”屬性)時,它不會引發任何更改通知。
如何在ReactiveUI中正確地做到這一點?
注意:
ObservableAsPropertyHelper <bool>是您所需要的,如果您的Children屬性是一個反應性列表,則可以合並Changed和ItemChanged Observable並具有以下內容:
public class MyViewModel : ReactiveObject
{
private readonly ObservableAsPropertyHelper<bool> _isValidPropertyHelper;
public MyViewModel()
{
var listChanged = Children.Changed.Select(_ => Unit.Default);
var childrenChanged = Children.ItemChanged.Select(_ => Unit.Default);
_isValidPropertyHelper = listChanged.Merge(childrenChanged)
.Select(_ => Children.All(c => c.IsValid))
.ToProperty(this, model => model.IsValid);
}
public bool IsValid
{
get { return _isValidPropertyHelper.Value; }
}
public ReactiveList<Item> Children { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.