MvxAutoCompleteTextView将Text属性设置为SelectedObject ToString()

时间:2014-10-08 12:37:35

标签: mvvmcross autocompletetextview

我正在使用MvxAutoCompleteTextView(MVVM Cross的自定义AutoCompleteTextView)并使List显示正常,并且ItemTemplate按预期显示。

当我单击List中的一个Items时,Text属性被设置为List中对象类型的全名。例如,如果List在MyCompany.MyDept的命名空间中包含MyObject类型的对象,则text属性将设置为字符串“MyCompany.MyDep.MyObject”

其他人见过这个吗?

更新 看起来Android的AutoCompleteTextView只选择一个字符串列表作为列表的来源。 Android代码中有一个名为ConvertSelectionToStringFormatted的方法,但我看不出如何提供替代方法

1 个答案:

答案 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。这给我带来了许多奇怪的问题。

祝你好运