可以通过继承gridcontrol的形式来实现 定义DataGridDoubleClickCommand依赖属性

class MyGridControl : GridControl
    {

        public ICommand DataGridDoubleClickCommand
        {
            get { return (ICommand)GetValue(DataGridDoubleClickProperty); }
            set { SetValue(DataGridDoubleClickProperty, value); }
        }
        public static readonly DependencyProperty DataGridDoubleClickProperty =
    DependencyProperty.RegisterAttached("DataGridDoubleClickCommand", typeof(ICommand), typeof(MyGridControl),
                      new UIPropertyMetadata());

        public MyGridControl()
        {
            Loaded += MyGridControl_Loaded;
            this.MouseDoubleClick += MyGridControl_MouseDoubleClick;
        }

        void MyGridControl_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (DataGridDoubleClickCommand != null)
            {
                DataGridDoubleClickCommand.Execute(null);
            }
        }

        private void MyGridControl_Loaded(object sender, System.Windows.RoutedEventArgs e) //这段代码为了自适应屏幕
        {
            var tableView = View as TableView;
            tableView.BestFitColumns();
            double actualGridWidth = tableView.IndicatorHeaderWidth + System.Windows.Forms.SystemInformation.VerticalScrollBarWidth;
            IList<DevExpress.Xpf.Grid.GridColumn> gcList = tableView.VisibleColumns;
            foreach (DevExpress.Xpf.Grid.GridColumn gc in gcList)
            {
                actualGridWidth += gc.ActualAdditionalRowDataWidth;
            }
            double blankArea = tableView.ActualWidth - actualGridWidth;
            if (blankArea > 0)
            {
                foreach (DevExpress.Xpf.Grid.GridColumn gc in gcList)
                {
                    gc.Width = gc.ActualWidth + blankArea / gcList.Count;
                }
            }

            tableView.ShowGroupPanel = false;
            tableView.AllowEditing = false;
        }
    }

05-11 13:37