我在我的項目中使用了一個AutoCompleteBox控件。現在我需要限制用戶可以輸入的文本的長度,例如最長50個字符。對於這種情況,TextBox具有MaxLength屬性,但AutoCompleteBox沒有。此外,AutoCompleteBox不公開TextBox的屬性。MaxLength for Silverlight中的AutoCompleteBox
我試圖解決的問題是這樣的:
private void autoCompleteBox_TextChanged(object sender, RoutedEventArgs e)
{
AutoCompleteBox autoCompleteBox = sender as AutoCompleteBox;
if (autoCompleteBox.Text.Length > MaxCharLength)
{
autoCompleteBox.Text = autoCompleteBox.Text.Substring(0, MaxCharLength);
}
}
這種方法的一大缺點是設置Text屬性之後,文本框中插入符號復位到起始位置,當用戶繼續打字,最後的字符被剪裁,並且插入符號總是會開始。 沒有暴露控制插入符的方法(如TextBox的Select方法)。
任何想法如何可以爲AutoCompleteBox設置最大長度?