如何防止多次连续 'Enter' 按键按下按钮
How to prevent multiple consecutive 'Enter' key press on a button
我有一个按钮,当我通过键盘按下 'Enter' 键时,按钮命令就会执行。当我连续按下 'Enter' 键时,命令也会执行多次,这是我不想要的。
即使在多次 'Enter' 按键期间,我也想将行为限制为单次执行命令。有人可以帮忙吗?
View.xaml
<Button x:Name="btnSearch" IsDefault="True" Content="Search" Command="{Binding SearchButtonCommand}">
<Button.InputBindings>
<KeyBinding Command="{Binding Path=SearchButtonCommand}" Key="Return" />
</Button.InputBindings>
</Button>
ViewModel.cs
public ICommand SearchButtonCommand
{
get { return new DelegateCommand(SearchButtonExecutionLogic); }
}
实现目标的最简单方法是在 ViewModel 的命令实现中引入并检查一些标志 isSearchRunning
:
private bool isSearchRunning = false;
private void SearchButtonCommandImpl()
{
if (isSearchRunning)
{
return;
}
try
{
isSearchRunning = true;
//Do stuff
}
finally
{
isSearchRunning = false;
}
}
我有一个按钮,当我通过键盘按下 'Enter' 键时,按钮命令就会执行。当我连续按下 'Enter' 键时,命令也会执行多次,这是我不想要的。
即使在多次 'Enter' 按键期间,我也想将行为限制为单次执行命令。有人可以帮忙吗?
View.xaml
<Button x:Name="btnSearch" IsDefault="True" Content="Search" Command="{Binding SearchButtonCommand}">
<Button.InputBindings>
<KeyBinding Command="{Binding Path=SearchButtonCommand}" Key="Return" />
</Button.InputBindings>
</Button>
ViewModel.cs
public ICommand SearchButtonCommand
{
get { return new DelegateCommand(SearchButtonExecutionLogic); }
}
实现目标的最简单方法是在 ViewModel 的命令实现中引入并检查一些标志 isSearchRunning
:
private bool isSearchRunning = false;
private void SearchButtonCommandImpl()
{
if (isSearchRunning)
{
return;
}
try
{
isSearchRunning = true;
//Do stuff
}
finally
{
isSearchRunning = false;
}
}