【发布时间】:2015-01-09 22:18:57
【问题描述】:
我正在使用 MvxAutoCompleTextView 并且我已经确认 ItemsSource 和 SelectedObject 已正确绑定并且可以正常工作(我添加了一些代码,当小部件获得焦点时,它会执行 ShowDropDown 并且确实存在预期的项目)。
当我开始输入以过滤列表时,问题就开始了。首先,ItemsSource 被正确过滤。但我注意到有时它仅基于某些键入的字符进行过滤。有时是第一个字符,有时是第一个字符。基本上是碰碰运气。下面是一个示例堆栈跟踪...
01-09 13:33:37.145 D/AbsListView( 3098): onDetachedFromWindow
[0:]
01-09 13:33:37.185 D/AbsListView( 3098): Get MotionRecognitionManager
mvx:Diagnostic:116.54 Wait starting for ac
01-09 13:33:37.395 I/mono-stdout( 3098): mvx:Diagnostic:116.54 Wait starting for ac
[0:] mvx:Diagnostic:116.54 Wait starting for ac
[0:]
mvx:Diagnostic:116.82 Wait finished with 772 items for ac
[0:] mvx:Diagnostic:116.82 Wait finished with 772 items for ac
01-09 13:33:37.745 I/mono-stdout( 3098): mvx:Diagnostic:116.82 Wait finished with 772 items for ac
[0:]
mvx:Diagnostic:117.03 Wait starting for ac
[0:] mvx:Diagnostic:117.03 Wait starting for ac
01-09 13:33:37.805 I/mono-stdout( 3098): mvx:Diagnostic:117.03 Wait starting for ac
01-09 13:33:38.025 D/AbsListView( 3098): onDetachedFromWindow
01-09 13:33:38.095 D/AbsListView( 3098): Get MotionRecognitionManager
当我输入 acc 时,您可能会注意到“等待 ac 开始”。
我还注意到,一旦它第一次过滤并且您添加其他文本以进一步过滤列表,绑定到 PartialText 的属性的设置器就永远不会被调用。当你退格时也会发生同样的事情。
<MvxAutoCompleteTextView
android:id="@+id/autoComplete"
android:layout_width="0dp"
android:layout_weight="2"
android:layout_marginLeft="5dp"
android:layout_gravity="center_vertical|left"
android:completionThreshold="1"
local:MvxItemTemplate="@layout/template_autocomplete"
local:MvxBind="ItemsSource Hazards; PartialText SearchTerm; SelectedObject SelectedHazard"
style="@style/edit_text.medium.fill" />
这是绑定到 PartialText 的属性:
private string _searchTerm;
public string SearchTerm
{
get { return _searchTerm; }
set
{
_searchTerm = value;
RaisePropertyChanged(() => SearchTerm);
Filter();
}
}
我做错了什么?我错过了什么吗?
我希望我解释清楚了。提前致谢。
干杯!
詹姆
【问题讨论】: