第一項我有一個充滿項目一個Silverlight autocompletebox。有誰知道如何突出顯示列表中的第一項,以便如果用戶按下回車鍵,則選擇該項目,並且用戶不一定非得使用鼠標?選擇在autocompletebox的Silverlight
在其他窗口控件,可以使用的selectedIndex = 0;
第一項我有一個充滿項目一個Silverlight autocompletebox。有誰知道如何突出顯示列表中的第一項,以便如果用戶按下回車鍵,則選擇該項目,並且用戶不一定非得使用鼠標?選擇在autocompletebox的Silverlight
在其他窗口控件,可以使用的selectedIndex = 0;
我想你在找什麼是的SelectedItem。如果你是在代碼中完成它,你只需要像autoCompleteControl.SelectedItem = listUsedToPopulate [0];
對於那些有興趣誰,你需要抓住的AutoCompleteBox的孩子ListBox控件參考和使用的SelectedIndex。
在XAML設置
IsTextCompletionEnabled = 「真」
只是爲了在已經給予很好的答案闡述。
首先,jesse的回答 - 設置爲IsTextCompletionEnabled="True"
,簡單 - 在每次擊鍵之後,用列表中的第一項填充文本框。當你按下回車鍵時,彈出窗口關閉。我結束了不使用這種方法的原因是,它會立即更新SelectedItem
,而無需等待用戶按Enter鍵。
西科的回答是我用什麼。它要求繼承AutoCompleteBox
控件以訪問GetTemplateChild
方法。代碼如下:
public class ExtendedAutoCompleteBox : AutoCompleteBox
{
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
UpdateSelection();
}
}
private void UpdateSelection()
{
// get the source of the ListBox control inside the template
var enumerator = ((Selector)GetTemplateChild("Selector")).ItemsSource.GetEnumerator();
// update Selecteditem with the first item in the list
enumerator.Reset();
if (enumerator.MoveNext())
{
var item = enumerator.Current;
SelectedItem = item;
// close the popup, highlight the text
IsDropDownOpen = false;
(TextBox)GetTemplateChild("Text").SelectAll();
}
}
}
不幸的是,這是行不通的。當用戶輸入時,只有一個項目出現在列表中 – Sico