如何重新聚焦并 select 全部放在错误上?
How to re-focus and select all on error?
我想帮助输入错误 ID 的用户,方法是将焦点重新设置到他们从中选择标签的控件上,并 select 在第一次按键时删除所有文本。这就是我认为可以解决问题的方法。
Product product = ViewModel.Products
.FirstOrDefault(item => item.LookUp == ProductCode.Text);
if (product == null)
{
ProductCode.Focus();
ProductCode.SelectAll();
return;
}
...
当文本框失去焦点时执行上面的代码。但是,它似乎反复调用自身(因为断点一直被重新命中)最终导致错误非常类似于该站点的名称。
我还尝试跳过重新聚焦,只跳过 select 所有文本。但是,似乎 select 所有文本的离子都没有执行。
我应该怎么做?
订阅 PreviewLostKeyboardFocus
文本框,当键盘不再聚焦于此元素时发生。为验证失败设置 e.Handled = true
,这样丢失焦点事件就不会向下传送。
Product product = ViewModel.Products
.FirstOrDefault(item => item.LookUp == ProductCode.Text);
if (product == null)
{
e.Handled = true;
ProductCode.SelectAll();
return;
}
...
我想帮助输入错误 ID 的用户,方法是将焦点重新设置到他们从中选择标签的控件上,并 select 在第一次按键时删除所有文本。这就是我认为可以解决问题的方法。
Product product = ViewModel.Products
.FirstOrDefault(item => item.LookUp == ProductCode.Text);
if (product == null)
{
ProductCode.Focus();
ProductCode.SelectAll();
return;
}
...
当文本框失去焦点时执行上面的代码。但是,它似乎反复调用自身(因为断点一直被重新命中)最终导致错误非常类似于该站点的名称。
我还尝试跳过重新聚焦,只跳过 select 所有文本。但是,似乎 select 所有文本的离子都没有执行。
我应该怎么做?
订阅 PreviewLostKeyboardFocus
文本框,当键盘不再聚焦于此元素时发生。为验证失败设置 e.Handled = true
,这样丢失焦点事件就不会向下传送。
Product product = ViewModel.Products
.FirstOrDefault(item => item.LookUp == ProductCode.Text);
if (product == null)
{
e.Handled = true;
ProductCode.SelectAll();
return;
}
...