WPF使用DataGrid内部的组合框上的向下箭头

时间:2018-12-19 11:41:48

标签: c# wpf combobox

我有一个带有ComboBox的Datagrid。但是,一旦选择了单元格,向下箭头(通过键盘)就无法更改ComboBox的选择。

<DataGrid.Resources>
    <DataTemplate x:Key="ModelDisplayTemplate" DataType="vm:OrderObject">
         <Label Content="{Binding ModelName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"></Label>
    </DataTemplate>
    <DataTemplate x:Key="ModelEditingTemplate" DataType="vm:OrderObject">
        <ComboBox ItemsSource="{Binding modelList}" DisplayMemberPath="Name" SelectedValuePath="ID" SelectedValue="{Binding Model, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
    </DataTemplate>
</DataGrid.Resources>

我尝试添加PreviewKeyDown事件并按以下方式处理:

    private void ComboBox_PreviewKeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Down)
        {
            ComboBox s = e.Source as ComboBox;
            if (s != null)
            {
                s.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
            }

            e.Handled = true;
        }
    }

但是,使用向下箭头键时不会触发此功能。 还尝试使用PreviewKeyUp代替,但这也不会触发该函数。

是否可能是ComboBox没有获得焦点,所以这就是为什么向下箭头键不起作用的原因?

0 个答案:

没有答案