我的 WPF 应用程序有一个用于执行数据库搜索的表单。它有一个Button
启动搜索,其IsDefault
属性设置为 true。通常,这允许Button's Click
在您按表单上的 enter 键时触发事件。
搜索结果显示在 TelerikRadGridView
控件中。最初,如果您双击结果中的一行,程序会将您带到另一个选项卡并显示您单击的行的详细信息。我的老板让我修改,RadGridView
以便当您按 Enter 时,控件执行相同的操作。
我能够通过添加一个自定义命令来向我的程序显示详细信息并CommandBindings
在搜索控件的 XAML 中添加一个InputBindings
部分来实现这一点。然后我在RadGridView's
XAML 中添加了一个部分,一切正常。除了按 enter 不再引发默认Button's Click
事件:
<UserControl x:Class="CarSystem.CustomControls.Searcher"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:cs="clr-namespace:CarSystem.CustomControls"
xmlns:vm="clr-namespace:CarSystem.ServiceModel;assembly=ViewModels"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
mc:Ignorable="d"
Height="620"
IsVisibleChanged="Searcher_IsVisibleChanged"
Loaded="Searcher_Loaded"
Width="990">
<UserControl.CommandBindings>
<CommandBinding CanExecute="DisplayEditHotListEntry_CanExecute" Command="cs:CarSystemCommands.DisplayEditHotListEntry" Executed="DisplayEditHotListEntry_Executed" />
<CommandBinding CanExecute="DisplayEditRecordDetails_CanExecute" Command="cs:CarSystemCommands.DisplayEditRecordDetails" Executed="DisplayEditRecordDetails_Executed" />
</UserControl.CommandBindings>
<Grid Background="{DynamicResource ContentBackground}"
Name="LayoutRoot">
. . .
<telerik:RadGridView . . .>
. . .
<telerik:RadGridView.InputBindings>
<KeyBinding Key="Enter" Command="{x:Static cs:CarSystemCommands.DisplayEditHotListEntry}" />
</telerik:RadGridView.InputBindings>
</telerik:RadGridView>
<Button IsDefault="true" . . . />
</Grid>
</UserControl>
表单顶部有许多指定搜索条件的控件。我想在焦点位于其中一个控件中时按 Enter 键以触发默认Button's Click
事件,并在焦点位于RadGridView
. 我怎样才能让它工作?