如何重新聚焦并选择所有错误

本文关键字:有错误 选择 何重新 聚焦 | 更新日期: 2023-09-27 18:23:55

我想帮助那些键入错误id的用户,将焦点重新设置在他们选项卡中的控件上,并在第一次按键时选择所有要删除的文本。这就是我认为会奏效的方法。

Product product = ViewModel.Products
  .FirstOrDefault(item => item.LookUp == ProductCode.Text);
if (product == null)
{
  ProductCode.Focus();
  ProductCode.SelectAll();
  return;
}
...

当文本框失去焦点时执行上述操作。然而,它似乎反复调用自己(因为断点一直被重新命中),最终导致了与此站点名称非常相似的错误。

我还试着跳过重新聚焦,只选择所有的文本。然而,似乎并没有对所有文本进行选择。

我该怎么做?

如何重新聚焦并选择所有错误

订阅文本框的PreviewLostKeyboardFocus,当键盘不再聚焦于此元素时发生。将验证失败的e.Handled = true设置为使失焦事件不会通过隧道关闭。

Product product = ViewModel.Products
  .FirstOrDefault(item => item.LookUp == ProductCode.Text);
if (product == null)
{
  e.Handled = true;
  ProductCode.SelectAll();
  return;
}
...