如何在更多属性中使用WhenAnyValue

时间:2018-08-10 18:03:46

标签: system.reactive reactiveui

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

推荐使用什么方法来处理任意多个属性,而不是通过WhenAnyValue的已定义重载来处理?

谢谢

1 个答案:

答案 0 :(得分:1)

如果确实必须一次处理那么多属性(omg,为什么?),我建议将这些属性分解为对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

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