阻止键盘快捷键“Backspace”,当文本过滤器处于编辑状态并删除字符时

Block the keyboard shortcut "Backspace" when a text filter is in edition and removing characters

提问人:Le ZVince 提问时间:3/27/2023 最后编辑:davmosLe ZVince 更新时间:4/16/2023 访问量:55

问:

在我正在开发的应用程序中,有一个我无法修改的自制 CustomListView 控件。

在同一视图中,有一个带有键盘快捷键“Backspace”的按钮,用于返回上一个视图。

问题是,在标题的 CustomListView 上,有过滤器文本区域可以过滤 ListView 内容,如果我想删除 ListView 过滤器中的字符 -->它会触发键盘快捷键返回上一个视图按钮(键 = 退格键)。 当我删除 CustomListView 的一个头部过滤器中的字符并允许它在剩余时间时,如何阻止按钮键盘快捷键“Backspace”?

我试过了:

  • “ListView.IsKeyboardFocusWithin”:KO
  • “ListView.IsKeyboardFocused”:KO
  • “ListView.IsInputMethodEnable”:KO

感谢您的回答。

C# ListView MVVM 键盘快捷方式 事件冒泡

评论


答:

1赞 davmos 3/27/2023 #1

您可以检查事件是否源自文本框,并设置标志以阻止它进一步冒泡......

if (e.OriginalSource is TextBox)
{
    e.Handled = true;
    return;
}