我的WPF应用程序有一个用于执行数据库搜索的表单。它有一个Button
,用于启动IsDefault
属性设置为true的搜索。通常,当您按下表单上的回车键时,这会允许Button's Click
事件触发。
搜索结果显示在Telerik RadGridView
控件中。最初,如果您双击结果中的某一行,程序会将您带到另一个选项卡,并显示您单击的行的详细信息。我的老板让我修改RadGridView
,这样当你按Enter键时,控件会做同样的事情。
我能够通过添加自定义命令来实现此目的,该命令用于向我的程序显示详细信息,并向搜索控件的XAML添加CommandBindings
部分。我向{InputBindings
部分添加了RadGridView's
部分1}} 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>
表单顶部有许多控件,其中指定了搜索条件。我想按下回车键,同时焦点位于其中一个控件中,以触发默认的Button's Click
事件,并在焦点位于RadGridView
时执行新操作。我如何让它工作?