gpt4 book ai didi

c# - ReactiveList 和 WhenAny

转载 作者:太空狗 更新时间:2023-10-30 00:52:43 36 4
gpt4 key购买 nike

我在 ReactiveLists 中保存了一些检查列表,它们具有 ChangeTrackingEnabled = 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));

关于c# - ReactiveList 和 WhenAny,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20225705/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com