WPF ComboBox,强制输入UpperCase

时间:2010-06-22 10:49:32

标签: wpf combobox uppercase

我有一个带TextSearchEnabled的可编辑WPF ComboBox。当他们键入以过滤ComboBox时,我需要强制用户的文本输入为大写。

我正在考虑修改作为控件一部分的文本框(名为“PART_EditableTextBox”)以设置 CharacterCasing =“Upper”,但我无法弄清楚如何执行此操作。

我是否需要使用触发器,或以某种方式修改模板?

4 个答案:

答案 0 :(得分:8)

这有效,似乎是一个合理的解决方案:

protected void winSurveyScreen_Loaded(object sender, RoutedEventArgs e)
{
    (comboBox.Template.FindName("PART_EditableTextBox", cbObservation) as TextBox).CharacterCasing = CharacterCasing.Upper;
}

确保组合框在加载时未折叠,否则将找不到模板。

答案 1 :(得分:3)

IMO,更快捷的方法是将UpdateTrigger设置为PropertyChanged,并在数据对象中将值更新为大写。

答案 2 :(得分:1)

我发现使用附加属性的post。允许在不重写代码的情况下将其用于所有ComboBox。

答案 3 :(得分:-1)

private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    Textbox editableTextbox = sender as Textbox;
    foreach (char ch in e.Text)
    {
        if (Char.IsLower(ch))
        {
            editableTextbox.Text += Char.ToUpper(ch);
            e.Handled = true;
        }
    }
}

或尝试创建attached behaviour for the textbox