2014-10-29 71 views
5

我試圖在Windows Phone 8.1 XAML應用程序中使用標準AutoSuggestBox,但它的行爲非常奇怪。Windows Phone 8.1中AutoSuggestBox的奇怪結果

在一個簡單的演示,我已經收集

Items = new ObservableCollection<string> 
     { 
      "a", 
      "b", 
      "c", 
      "d" 
     }; 

,他在XAML AutoSuggestBox:

<AutoSuggestBox ItemsSource="{Binding Items}" /> 

的問題是,不管我寫AutoSuggestBox,我總是得到所有項目:

enter image description here

釷e文檔幾乎沒有任何內容,我還沒有找到使用此控件的任何示例。

回答

4

基於this blog post,它看起來像你期待什麼(自動過濾)情況並非如此 - 相反,你需要連接到TextChanged事件並填充Suggestions收集自己。

documentation

當文本已被用戶改變,負責爲這個控件顯示提供相關建議的應用程序通知。

6

試試下面的代碼:

private void AutoSuggestBox_TextChanged(AutoSuggestBox sender, 
     AutoSuggestBoxTextChangedEventArgs args) 
    { 
      List<string> myList = new List<string>(); 
      foreach (string myString in PreviouslyDefinedStringArray) 
      { 
       if (myString.Contains(sender.Text) == true) 
       { 
        myList.Add(myString); 
       } 
      } 
      sender.ItemsSource = myList; 
    } 

這應該在WP 8.1

+0

有點多餘,我已經接受一個答案,告訴我同樣的 – 2014-12-15 07:57:50

+0

無論工作,感謝一個可行的解決方案, Anmar – Freakishly 2015-08-27 05:43:51

+0

發佈代碼絕對沒問題;在接受的答案中提到的博客文章可能會在將來變得不可用或重新部署。事件處理程序代碼應該包含在'if(args.Reason == AutoSuggestionBoxTextChangeReason.UserInput){...}'中,以避免在選擇建議或編程改變文本時造成冗餘。 – dlatikay 2016-11-07 11:51:31