3

TextSearchEnabled の編集可能な WPF ComboBox があります。ユーザーが ComboBox をフィルター処理するために入力するときに、ユーザーのテキスト入力を強制的に大文字にする必要があります。

コントロールの一部であるテキストボックス (「PART_EditableTextBox」という名前) を変更してCharacterCasing="Upper"を設定することを考えていましたが、これを行う方法がわかりません。

トリガーを使用したり、何らかの方法でテンプレートを変更したりする必要がありますか?

4

4 に答える 4

8

これは機能し、合理的な解決策のようです。

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

ロード時にコンボボックスが折りたたまれていないことを確認してください。そうしないと、テンプレートが見つかりません。

于 2010-07-20T09:50:35.580 に答える
3

IMOの場合、より簡単な方法は、UpdateTriggerをPropertyChangedに設定し、データオブジェクトで、更新時に値を大文字にすることです。

于 2010-06-22T10:57:33.850 に答える
1

添付プロパティが使用されている投稿を見つけました。これにより、コードを書き直すことなく、すべての ComboBox でそれを使用できます。

于 2013-10-23T09:07:36.410 に答える
-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;
        }
    }
}

または、テキストボックスに添付された動作を作成してみてください

于 2010-06-22T12:51:24.543 に答える