ReactiveUI如何使用WhenAnyObservable正确如何使用、正确、ReactiveUI、WhenAnyObservable

2023-09-04 02:47:57 作者:我们之间﹌隔着一片海

我试图使用WhenAnyObservable首次。

I am attempting to use WhenAnyObservable for the first time.

在ReactiveList计数== 0和tipText长度> 0,那么我想在认购,或相反局部值设置为true。

When a ReactiveList Count == 0 and a tipText length is > 0 then I want to set a local value to true in the subscribe, or the opposite.

        this.ViewModel.WhenAnyObservable(
            x => x.AutoCompleteItems.CountChanged,
            x => x.ObservableForProperty(y => y.TipText),
            (countChanged, tipText) => countChanged == 0 && tipText.Length > 0);

我无法得到这个工作。

I am having trouble getting this to work.

有没有招我应该做的,或者我应该用另一种WhenAny命令吗?

Is there any trick I should be doing, or should I be using one of the other WhenAny commands?

推荐答案

您已经有了正确的想法,但WhenAnyObservable不会返回项目,直到它有一个初步的项目为双方如果你使用> 1观测量。所以,你可能想:

You've got the right idea, but WhenAnyObservable doesn't return items until it has an initial item for both "sides" if you use >1 Observables. So you probably want:

this.ViewModel.WhenAnyObservable(
    x => x.AutoCompleteItems.CountChanged.StartWith(0),
    x => x.WhenAnyValue(y => y.TipText),
    (countChanged, tipText) => countChanged == 0 && tipText.Length > 0);