我正在尝试理解下面的代码,试图使用响应式扩展库。
IObservable<string> textChangedObservable =
Observable.FromEventPattern<TextChangedEventArgs>(searchScrip, "TextChanged")
.Select(evt => ((TextBox) sender).Text);
textChangedObservable.Subscribe(OnNext, OnCompleted);
private void OnNext(string s)
{
System.Diagnostics.Debug.Print("OnNext " + s + "\n");
}
private void OnCompleted()
{
System.Diagnostics.Debug.Print("OnCompleted " + "\n");
}
如果我在输入框中输入SEARC,输出结果如下:
- OnNext SE
- OnNext SEA
- OnNext SEA
- OnNext SEAR
- OnNext SEAR
- OnNext SEAR
- OnNext SEARC
- OnNext SEARC
- OnNext SEARC
OnNext SEARC
- "S"为什么没有触发OnNext?
- 为什么OnCompleted从未被调用?
- 为什么第n个字符的OnNext调用n-1次?
XamTextEditor
不容易获取。我怀疑这可能与它实现的RoutedPropertyChanged
有关。 - supertopisearchScrip
和sender
是什么。 - supertopi