C# 反应列表和WhenAny

C# 反应列表和WhenAny,c#,reactiveui,C#,Reactiveui,我在reactivelist中保存了许多检查表,它们具有changetrackingabled=true。我只想在每个列表中至少有一个项目被选中时启用OkCommand 此外,我还希望确保使用有效的字节值填充其他各种属性 我尝试了以下操作,但不起作用: this.OkCommand = new ReactiveCommand(this.WhenAny( x => x.Property1, x => x.Property1

我在
reactivelist
中保存了许多检查表,它们具有
changetrackingabled=true
。我只想在每个列表中至少有一个项目被选中时启用OkCommand

此外,我还希望确保使用有效的字节值填充其他各种属性

我尝试了以下操作,但不起作用:

        this.OkCommand = new ReactiveCommand(this.WhenAny(
            x => x.Property1,
            x => x.Property1,
            x => x.Property1,
            x => x.List1,
            x => x.List2,
            x => x.List3,
            (p1, p2, p3, l1, l2, l3) =>
            {
                byte tmp;
                return byte.TryParse(p1.Value, out tmp) &&
                       byte.TryParse(p2.Value, out tmp) &&
                       byte.TryParse(p3.Value, out tmp) &&
                       l1.Value.Any(x => x.IsChecked) &&
                       l2.Value.Any(x => x.IsChecked) &&
                       l3.Value.Any(x => x.IsChecked);
            }));

属性更改通知似乎没有传播到WhenAny。知道我应该做什么吗?

这是在有人自己设置列表时进行的测试,即:

this.List1 = new ReactiveList<Foo>();
this.WhenAnyObservable(x => x.List1.ItemChanged, x => x.List2.ItemChanged)
    .Where(x => x.PropertyName == "IsChecked")
    .Select(_ => List1.Any(x => x.IsChecked) && List2.Any(x => x.IsChecked));