【问题标题】:Change selection on a ComboBoxEditSettings inside a grid using KeyUp/Down使用 KeyUp/Down 更改网格内 ComboBoxEditSettings 上的选择
【发布时间】:2016-03-03 00:27:04
【问题描述】:

我正在使用 ComboBoxEditSeting 在网格内使用 ComboBox,并且我希望能够在选项卡上进入控件,如果用户按下 KeyDown/KeyUp,则下拉选项列表并且用户可以在它们之间导航.我知道目前如果我按下 Ctrl+KeyUp/Down 是可能的,但我希望它没有与控件的组合。怎样才能做到这一点?

这是我到现在为止的一段代码:

<dxg:GridColumn FieldName="{x:Static model:PromptFieldNames.WFieldName}" Header="{x:Static p:Resources.SubmitTo}" HorizontalHeaderContentAlignment="Left" MinWidth="100"  Width="250">
    <dxg:GridColumn.EditSettings>
        <dxe:ComboBoxEditSettings ItemsSource="{Binding DataContext.Ws, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
                                  ValueMember="Id" IsTextEditable="False"
                                  DisplayMember="Name" ImmediatePopup="True" />
    </dxg:GridColumn.EditSettings>
</dxg:GridColumn>

【问题讨论】:

    标签: wpf xaml devexpress devexpress-wpf


    【解决方案1】:

    按键事件在网格级别处理,因此您必须创建一个 GridControl 类后代并覆盖其 OnPreviewKeyDown 方法:

                public class MyGridControl : GridControl
                {
                    protected override void OnPreviewKeyDown(KeyEventArgs e)
                    {
                        if (!(View.ActiveEditor is ComboBoxEdit))
                        {
                            base.OnPreviewKeyDown(e);
                            return;
                        }
    
                        if (e.Key == Key.Down)
                            ((ComboBoxEdit)View.ActiveEditor).SpinDown();
    
                        if (e.Key == Key.Up)
                            ((ComboBoxEdit)View.ActiveEditor).SpinUp();
    
                        e.Handled = true;
                    }
                }
    

    但您必须通过 F2 键或单击单元格来激活编辑器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-08
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 2016-09-28
      相关资源
      最近更新 更多