我有一个带有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没有获得焦点,所以这就是为什么向下箭头键不起作用的原因?