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

Pat*_*bee 5 android autocompletetextview mvvmcross

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

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

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

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

像AfterTextChanged一样,TextChangedEvent仍会在控件上触发,但不是PartialTextChanged,而是驱动更新的原因。

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

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

谢谢

Pat*_*bee 5

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

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

找到这个之后,我还发现@slodge在此答案中也提到了这一点,即AutoComplete MVVM和Java Castings,而没有在ViewModel上使用Java.Lang.Object。到现在为止我一直没有遇到的限制。

请注意,由于采用了Android线程模型,PartialText中的每个更改都必须由ItemsSource中的最终信号更改来满足-这应该是对象集合中的单个更改,而不是很多小的更改。

谢谢