我正在使用MvxAutoCompleTextView,並且我已經確認了ItemsSource和SelectedObject被正確綁定並正常工作(我添加了一些代碼,當小部件獲得焦點時,它會執行ShowDropDown並確保足夠物品在那裏)。MvxAutoCompleTextView失去對PatialText的綁定
當我開始鍵入來篩選列表時,問題就開始了。首先,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
你可能注意到在「等待開始爲AC」當我輸入ACC。
我還注意到,只要它第一次過濾並添加其他文本以進一步過濾列表,綁定到PartialText的屬性的setter永遠不會被調用。退格時會發生同樣的事情。
<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(); } }
我在做什麼錯?我錯過了什麼嗎?
我希望我解釋清楚。提前致謝。
乾杯!
Jaime
非常感謝帕特!這是你的相關答案,我指出了正確的方向。文字發生變化後,我必須在適配器上調用NotifyDataSetChanged。 – Jaime 2015-01-12 17:26:50
很高興你把它修好了。 NotifyDataSetChanged應該在更新ItemsSource時被調用 – 2015-01-12 17:29:04