我正在使用MVVMCross围绕Xamarin Android AutoCompleteTextView的包装。
我使用PartialTextChanged更改事件来表示我需要从View中调用ViewModel以获取更多建议。
这可以正常工作,直到用户从列表中选择一个项目。在此之后,对文本的任何更改都不会导致PartialTextChanged事件触发。就像选择完成后关闭过滤一样。
AutoCompleteTextView上有一个SetText方法似乎会关闭\ off的过滤,但我不确定使用它的最佳方法。
TextChangedEvent仍会在控件上触发,而AfterTextChanged只是不是PartialTextChanged,它是驱动更新的。
我已经通过MVVMCross源调试了,看不到解决方案。有什么想法吗?
我在哪里可以浏览它们的mondroid \ xamarin android代码?
由于
答案 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 - 这应该是对象集合中的单个更改 而不是很多小的变化。
谢谢