- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 ReactiveUI 框架来搜索世界上的机场列表。
我已经设置了 ObservableAsPropertyHelper,它是 ViewModel 中 SearchTerm 属性的建议机场的输出。以下是 ObservableAsPropertyHelper 的定义。在 View 中,我有一个绑定(bind)到此属性的列表框。我希望能够明确清除列表框(因为一旦用户选择了建议的项目,我想用所选机场填充 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)
// The act of selecting an item is very ICommand'y, let's model it
// as such.
ReactiveCommand SuggestionItemSelected = new ReactiveCommand();
// Important to *not* signal a change here by touching the field
// so that we avoid a circular event chain
SuggestionItemSelected.Subscribe(x => _searchTerms = x);
// NB: Always provide a scheduler to Throttle!
var searchTerms = this.WhenAnyValue(x => x.SearchTerms)
.Where(x => canSearch)
.Throttle(TimeSpan.FromMilliseconds(500), RxApp.MainThreadScheduler);
// Select + Switch will do what you were trying to do with CombineLatest
var latestResults = searchTerms
.Select(SearchAirports);
.Switch()
// The listbox is the combination of *Either* the latest results, or the
// empty list if someone chooses an item
var latestResultsOrCleared = Observable.Merge(
latestResults,
SuggestionItemSelected.Select(_ => new List<Results>()));
latestResultsOrCleared
.ToProperty(this, x => x.AirportLiteWithWeights, out _airportLiteWithWeights);
关于c# - 响应式(Reactive) UI/响应式(Reactive)扩展 : how to clear ObservableAsPropertyHelper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21349363/
我正在努力应对 ReactiveUI 的学习曲线,所以这个问题可能很天真。请帮助我理解以下之间的区别: ObservableAsPropertyHelper _input public string
激活/停用与 ObservableAsPropertyHelper 的正确用法是什么?给定反射(reflect)长期(热)可观察对象的 View 和 View 模型,订阅将需要在卸载 View 和 V
我注意到在我使用 ReactiveUI 的 .NET 3.5 应用程序中,我有一个明显的内存泄漏,它似乎起源于 ObservableAsPropertyHelper。我创建了一个测试项目来演示它 he
来自样本here ,我正在尝试将 _SpinnerVisibility 更改为多个 reactivecommand 对象。所以下面的片段显示了我所做的.. public ReactiveCommand
我在基于以下(旧版)示例的 WPF MVVM 应用程序中实现了 ReactiveUI 异步搜索例程: http://blog.paulbetts.org/index.php/2010/07/05/re
我试图在几个 ReactiveList 上合并多个 Observable 以创建一个 ObservableAsPropertyHelper。 public class Model : Reactive
我有以下 View 模型类(基于 RxUI design guidelines ): public class SomeViewModel : ReactiveObject { private
我正在使用 ReactiveUI 框架来搜索世界上的机场列表。 我已经设置了 ObservableAsPropertyHelper,它是 ViewModel 中 SearchTerm 属性的建议机场的
我是一名优秀的程序员,十分优秀!