我正在使用MvxAutoCompleteTextView(MVVM Cross的自定义AutoCompleteTextView)并使List显示正常,并且ItemTemplate按预期显示。
当我单击List中的一个Items时,Text属性被设置为List中对象类型的全名。例如,如果List在MyCompany.MyDept的命名空间中包含MyObject类型的对象,则text属性将设置为字符串“MyCompany.MyDep.MyObject”
其他人见过这个吗?
更新 看起来Android的AutoCompleteTextView只选择一个字符串列表作为列表的来源。 Android代码中有一个名为ConvertSelectionToStringFormatted的方法,但我看不出如何提供替代方法
答案 0 :(得分:4)
如果你在问题中查看我的 UPDATE ,你会发现问题出在ConvertSelectionToStringFormatted。
我看不出如何使用我自己的ConvertSelectionToStringFormatted实现轻松创建MvxAutoCompleteTextView的自定义版本,所以我需要一种不同的方法。
Android的AutoCompleteTextView显然是在所选对象上调用ToString,因此我在我的对象中覆盖了ToString,以返回比" MyCompany.MyDep.MyObject"
更有用的显示名称我认为我还会将最后的axml包含在控件中,因为这非常重要
<MvxAutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"
android:hint="Enter drug name..."
local:MvxItemTemplate="@layout/item_myObj"
local:MvxBind="ItemsSource Suggestions;
PartialText SearchTerm;
SelectedObject SelectedObj;" />
设置completionThreshold非常重要,当没有设置时,控件停止工作\搜索一旦我清除了框。无论我在清除盒子后输入什么(带退格),它都不会自动完成。未设置阈值时的另一个奇怪问题是PartialText一旦转到1个字符就绑定为空字符串!是1而不是0。
不会错误地绑定控件的Text属性。 PartialText是搜索术语,单独留下Text。这给我带来了许多奇怪的问题。
祝你好运