如何将 WhenAnyValue 与更多属性一起使用

How to use WhenAnyValue with more properties

WhenAnyValue 方法重载了最多 12 个属性。

推荐的处理任意数量的属性的方法是什么,超过了 WhenAnyValue 定义的重载所能处理的数量?

谢谢

如果您真的必须一次处理那么多属性(天哪,为什么?),我建议将这些属性分解为对 WhenAnyValue 的多次调用,然后将它们与 CombineLatest 组合起来。既然你将它们全部与 WhenAnyValue 结合起来,我想这应该可以正常工作。

示例:

var group1 = this.WhenAnyValue(@this => @this.Prop1, ..., (prop1, ...) => ...);
var group2 = this.WhenAnyValue(@this => @this.Prop13, ..., (prop13, ...) => ...);
group1.CombineLatest(group2, (g1, g2) => ...);

WhenAnyValue 只是使用 CombineLatest under the hood 无论如何。

或者,您可以创建额外的重载以支持更多值。类型参数的数量实际上没有限制。