Реактивный пользовательский интерфейс, как использовать WhenAny, используя два свойства?

Я пытаюсь использовать WhenAny (Reactive UI) в первый раз.

Когда идентификатор =="xyz" и поле IsMax изменяются, вы хотите установить локальное значение true в подписке,

   this.WhenAny(x => x.IsMax, x => x.Value)
       .Subscribe(x => 
            {
                if (Identifier == "xyz")
                {  
                   isOk = true; 
                }
            });

но есть ли другой способ объединить условие идентификатора?


person Rajesh Kapure    schedule 02.03.2015    source источник
comment
если ваше имя свойства действительно является значением, это может быть проблемой, потому что оно совпадает с единственным значением WhenAny(). Также рассмотрите возможность использования WhenAnyValue(), и подписка также будет иметь аргументы ( arg1, arg2 ) =› ...   -  person kenny    schedule 03.03.2015


Ответы (1)


Я не знаком с ReactiveUI, но если он использует тот же IObservable, что и Reactive Extensions, то вы можете сделать это:

   this.WhenAny(x => x.IsMax, x => x.Value)
       .Where(_ => Identifier == "xyz")
       .Subscribe(_ => 
           {
               isOk = true;
           });

Это то, что вы хотели?

PS: Я должен был спросить об этом в комментарии, но у меня пока недостаточно репутации.

person Szabolcs Dézsi    schedule 03.03.2015
comment
Вы правы в том, что это должен быть комментарий, поскольку он не отвечает на вопрос с ReactiveUI, как задано. - person kenny; 03.03.2015
comment
Я хочу добиться того же, используя реактивный пользовательский интерфейс. - person Rajesh Kapure; 04.03.2015