Я использую инфраструктуру ReactiveUI для поиска списка аэропортов в мире.ReactiveUI/Reactive Extensions: как очистить ObservableAsPropertyHelper
Я установил ObservableAsPropertyHelper, который является выходом предлагаемых аэропортов из свойства SearchTerm в ViewModel. Ниже приведено определение для ObservableAsPropertyHelper. В представлении у меня есть список, который привязывается к этому свойству. Я хотел бы иметь возможность очистить список явно (потому что, как только пользователь выбрал предлагаемый элемент, я хочу заполнить SearchTerm выбранным аэропортом и удалить предложенный список). Есть ли элегантный способ реализовать это?
var searchTerms = this.ObservableForProperty(x => x.SearchTerms).Where(x => canSearch).Value().Throttle(TimeSpan.FromMilliseconds(500));
var searchResults = searchTerms.SelectMany(SearchAirports);
var latestResults = searchTerms.CombineLatest(searchResults, (s, r) => r.SearchTerm != s ? null : r.AirportLiteWithWeights).Where(x => x != null);
_airportLiteWithWeights = latestResults.ToProperty(this, x => x.AirportLiteWithWeights);
благодарит Поль! , но _searchTerms = x не обновляет пользовательский интерфейс. btw .. Я узнал что-то новое сегодня. метод Switch() действительно подходит в этой ситуации! благодаря! – icube
Спасибо, Пол, я смог использовать это решение. Однако я использую RxUI 7 и использую по существу пустую команду для ее реализации. Есть ли более элегантное решение с этой версией, не существует ReactiveCommand.Create(); поэтому я использую this.CancelCommand = ReactiveCommand.Create (() => {}); – Saxar