将默认按钮的InputBinding打到Enter键

时间:2013-02-14 17:01:41

标签: wpf

我的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时执行新操作。我如何让它工作?

0 个答案:

没有答案