回答
我通過XAML發現了一個簡單的解決方案。在ComboBox資源中,我們可以設置文本框的樣式並通過setter設置maxlenth。
<ComboBox Name="comboBox" Width="100" IsEditable="True">
<ComboBox.Resources>
<Style TargetType="{x:Type TextBox}">
<Setter Property="MaxLength" Value="yourValue"/>
</Style>
</ComboBox.Resources>
</ComboBox>
編輯:這適用於Actipro組合框。對於通常的comboBox來使這項工作,看看here
我想使用此解決方案,但它似乎不適用於我。我錯過了什麼嗎? –
@TieleDeclercq我不能說沒有看到你的代碼 – Sasha
我有一個新的WPF項目中的例子中的確切代碼。將'yourValue'更改爲10.但它不限制我輸入超過10個字符,因爲它與TextBox一樣。測試4,4.5和4.6 –
在ComboBox Class(MSDN):
<ComboBox>
Items
</ComboBox>
輸入的長度取決於你把它的項目。因此你不能設置該屬性。然而,文本框確實有max length:
<TextBox MaxLength="20">
Text
</TextBox>
答案中提到的錯誤事實。 Combobox具有IsEditable屬性,當設置爲true時,用戶可以像在TextBox中一樣輸入文本。因此輸入的長度取決於用戶輸入,而不僅僅是ComboBox的項目。 – Liero
我用PreviewKeyDown事件,很簡單+你可以顯示警告或什麼的。
將以下方法註冊到您的ComboBox.PreviewKeyDown + =事件中,
如果用戶按空間鍵,則不會觸發KeyDown事件。
private void ComboBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (ComboBox.Text.Length > 19) // allow max 20 chars
{
if (e.Key != Key.Back) // allow removing chars
{
e.Handled = true; // block any additional key press if there is more than allowed max
System.Media.SystemSounds.Beep.Play(); // optional: beep to let user know he is out of space :)
}
}
}
這不起作用,但也阻止了像做SHIFT + LEFT這樣的事情來選擇所有文本和其他怪癖。 –
只是爲了讓故事完整:
你有兩種選擇:
組合框顯然包含在其模板
TextBox
。您需要找到訪問TextBox的方法,可能通過Combobox Template
並將其設置爲MaxLength
您可能會將Combobox.Text綁定到viewmodel屬性。您可以使用INotifyDataErrorInfo在視圖模型中進行驗證,甚至可以從setter中引發異常。如果超過最大允許長度,用戶將看到錯誤消息。我認爲從用戶體驗角度來看這更好。不幸的是,如果你還沒有使用INotifyDataErrorInfo,那麼使它工作還有很多工作要做。
- 1. Telerik RadGrid - 如何設置插入文本框的最大長度
- 2. 用戶輸入設置數組長度
- 3. 如何設置輸入框的最大長度屬性
- 4. jQuery文本框用戶輸入長度
- 5. 如何設置ZK組合框寬度
- 6. 如何在asp.net中設置文本框輸入類型=「文本」?
- 7. 如何設置文本長度按鈕
- 8. 如何根據AngularJS中的不同組合框值設置輸入字段的最大長度?
- 9. 設置輸入文本的固定長度
- 10. 如何輸出JList上的文本輸入和組合框(java)
- 11. 設置組合框的默認文本
- 12. 如何在CSS中設置輸入(文本)字段的高度?
- 13. 組合框的長度
- 14. 從文本框中設置組合框文本
- 15. 如何將查詢中的值設置爲輸入文本框
- 16. 如何在angularjs中綁定輸入文本和組合框1
- 17. 輸入,不同長度/寬度的文本框?
- 18. 如何使用MVVM在組合框中設置默認文本
- 19. 設置文本框中輸入字體大小等於輸入文本框的高度
- 20. 限制文本框中的長度和輸入掩碼
- 21. 如何在輸入中設置最小長度爲6? [Live seach]
- 22. 輸入文件輸出長度不符合輸入向量長度
- 23. 如何在組合框中輸入文本時在組合框中顯示匹配的值集合?
- 24. 如何在java中設置組合框的下拉寬度fx
- 25. 如何處理組合框中非常長的文本項目
- 26. 如何設置組合框的文本和值字段
- 27. 文本框輸入高度
- 28. 設置輸入寬度以適合文本大小
- 29. 如何在輸入中捕獲EditText的文本長度?
- 30. ExtJS的組合框高度設置
我覺得這個指甲也http://stackoverflow.com/questions/1572887/how-to-set-maxlength-for-combobox-in-wpf – Jonesopolis
日Thnx你。我可以將其標記爲答案,如果你想 – Sasha