我在Xamarin Android AutoCompleteTextView周围使用MVVMCross的包装器。

我使用PartialTextChanged更改事件来表示需要从View调用ViewModel以获得更多建议。

直到用户从列表中选择一个项目为止,这种方法都可以正常工作。此后,对文本的任何更改都不会导致PartialTextChanged事件触发。好像一旦选择就关闭了过滤。

AutoCompleteTextView上有一个SetText方法似乎可以打开/关闭过滤,但是我不确定使用该方法的最佳方法。

与AfterTextChanged一样,TextChangedEvent仍会在控件上触发,但不是PartialTextChanged而是由它驱动更新。

我已经通过MVVMCross源进行了调试,看不到解决方案。有什么想法吗?

我在哪里可以浏览mondroid\xamarin android代码?

谢谢

最佳答案

在附加了MVVMCross源代码并调试了所有事件之后,我发现在某些情况下,更改PartialText属性后,我没有更新ItemsSource。

FilteringAdapter在对PartialText的更改周围使用ManualResetEvent,并且仅通过NotifyDataSetChanged方法来信号通知/设置。

找到这个之后,我还发现@slodge在这个答案AutoComplete MVVM and Java Castings without using Java.Lang.Object on ViewModel中也提到了这一点。到现在为止我一直没有遇到的限制。



谢谢

10-08 13:57