WPF ComboBox, force input to UpperCase

后端 未结 4 1175
孤城傲影
孤城傲影 2021-01-20 05:45

I have an editable WPF ComboBox with TextSearchEnabled. I need to force the user\'s text input to uppercase when they type to filter the ComboBox.

I was thinking of

相关标签:
4条回答
  • 2021-01-20 06:27
    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;
            }
        }
    }
    

    or try creating an attached behaviour for the textbox

    0 讨论(0)
  • 2021-01-20 06:31

    I found that post where the attached property is used. That permit to use that for all of your ComboBox without rewriting the code.

    0 讨论(0)
  • 2021-01-20 06:38

    This works and seems like a reasonable solution:

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

    Ensure that the combobox is not collapsed on loaded otherwise the template will not be found.

    0 讨论(0)
  • 2021-01-20 06:40

    IMO, the quicker way is to set the UpdateTrigger to PropertyChanged and, in the data object, uppercase the value when it is updated.

    0 讨论(0)
提交回复
热议问题