Так как это выглядит как ReactiveUI, как насчет использования оператора WhenAny:
this.WhenAny(x => x.PropertyOne, x => x.PropertyTwo, (p1, p2) => Unit.Default)
.Subscribe(x => /* ... */);
В общем, если бы вы комбинировали произвольные Observables, вы могли бы также написать это немного более четко, используя не-расширениеМетод:
Observable.Merge(
this.ObservableForProperty(x => x.PropertyOne).Select(_ => Unit.Default),
this.ObservableForProperty(x => x.PropertyTwo).Select(_ => Unit.Default),
this.ObservableForProperty(x => x.PropertyThree).Select(_ => Unit.Default)
).Subscribe(x => /* ... */);
Кроме того, если вы подписываетесь на каждое свойство ReactiveObject, вероятно, лучше просто использовать:
this.Changed.Subscribe(x => /* ... */);