我在wpf控件中可編輯組合框。可編輯Combobox被凍結後編輯
<ComboBox Width="200" Name="quickSearchText"
TextBoxBase.TextChanged="searchTextChanged"
IsTextSearchEnabled="False"
StaysOpenOnEdit="True" IsEditable="True">
</ComboBox>
文本輸入後我改變組合框項目(如自動完成文本框)。
private void searchTextChanged(object sender, TextChangedEventArgs e)
{
string text = quickSearchText.Text; //Get typing text.
List<string> autoList = new List<string>();
autoList.AddRange(suggestions.Where(suggestion => !string.IsNullOrEmpty(text)&& suggestion.StartsWith(text))); //Get possible suggestions.
// Show all, if text is empty.
if (string.IsNullOrEmpty(text) && autoList.Count == 0)
{
autoList.AddRange(suggestions);
}
quickSearchText.ItemsSource = autoList;
quickSearchText.IsDropDownOpen = autoList.Count != 0; //Open if any.
}
如果我選擇從下拉菜單或輸入文本的項目,然後按Enter
的TextboxBase僵住了,我不能編輯它。 (但可以突出顯示文字並打開/關閉下拉菜單)
如何解決?
你可以用'TextBox'控制&用Combobox控制Popup。在TextBox的'TextChanged'事件上,你可以顯示/隱藏'Popup'。 –
@Amol Bavannavar謝謝。它是解決方案之一。但爲什麼當前的解決方案不起作用? –