private IGridViewColumn <Axis> createColumn <T>(Expression <Func <Axis, T> > propertyToBindTo,
                                                        AxisOptionsColumns axisOptionsColumn,
                                                        RepositoryItem repositoryItem = null,
                                                        bool showInColumnChooser      = true,
                                                        string toolTip = null,
                                                        Action <Axis> beforeNotificationAction = null)
        {
            var column = _gridBinderAxes.Bind(propertyToBindTo)
                         .WithShowInColumnChooser(showInColumnChooser);

            if (beforeNotificationAction != null)
            {
                column.WithOnValueUpdated((axis, value) => beforeNotificationAction(axis));
            }

            //Order is important: needs to be done after the beforeNotification if defined.
            column.WithOnValueUpdated((axis, value) => notifyAxisPropertyChanged(axis));

            if (repositoryItem != null)
            {
                column.WithRepository(axis => repositoryItem);
            }

            if (toolTip != null)
            {
                column.WithToolTip(ToolTips.DefaultLineStyle);
            }

            column.XtraColumn.Tag = axisOptionsColumn.ToString();

            return(column);
        }
 public GridColumnSettings ColumnSettingsFor(AxisOptionsColumns axisOptionsColumn) => _axisSettingsPresenter.ColumnSettings(axisOptionsColumn.ToString());