在选择项目后,PartialTextChanged将停止在MvxAutoCompleteTextView上触发

时间:2014-10-24 08:13:42

标签: android mvvmcross autocompletetextview

我正在使用MVVMCross围绕Xamarin Android AutoCompleteTextView的包装。

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

这可以正常工作,直到用户从列表中选择一个项目。在此之后,对文本的任何更改都不会导致PartialTextChanged事件触发。就像选择完成后关闭过滤一样。

AutoCompleteTextView上有一个SetText方法似乎会关闭\ off的过滤,但我不确定使用它的最佳方法。

TextChangedEvent仍会在控件上触发,而AfterTextChanged只是不是PartialTextChanged,它是驱动更新的。

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

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

由于

1 个答案:

答案 0 :(得分:4)

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

FilteringAdapter在更改PartialText时使用ManualResetEvent,并且仅通过NotifyDataSetChanged方法进行信号设置。

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

  

请注意,由于Android线程模型,因此必不可少   PartialText中的每个更改都通过最终发出信号的变化来满足   ItemsSource - 这应该是对象集合中的单个更改   而不是很多小的变化。

谢谢