0

我的 WPF 应用程序有一个用于执行数据库搜索的表单。它有一个Button启动搜索,其IsDefault属性设置为 true。通常,这允许Button's Click在您按表单上的 enter 键时触发事件。

搜索结果显示在 TelerikRadGridView控件中。最初,如果您双击结果中的一行,程序会将您带到另一个选项卡并显示您单击的行的详细信息。我的老板让我修改,RadGridView以便当您按 Enter 时,控件执行相同的操作。

我能够通过添加一个自定义命令来向我的程序显示详细信息并CommandBindings在搜索控件的 XAML 中添加一个InputBindings部分来实现这一点。然后我在RadGridView'sXAML 中添加了一个部分,一切正常。除了按 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. 我怎样才能让它工作?

4

0 回答 0