/// <summary> /// 设置grid的编辑方式。 /// </summary> /// <param name="xtraGrid"></param> /// <param name="autoNewRow"></param> public void SetGridViewNewItem(DevExpress.XtraGrid.GridControl xtraGrid, bool autoNewRow, XtraContextMenuType appendMenus) { DevExpress.XtraGrid.Views.Grid.GridView gridView = xtraGrid.MainView as DevExpress.XtraGrid.Views.Grid.GridView; if (gridView == null) return; gridView.OptionsView.NewItemRowPosition = autoNewRow ? DevExpress.XtraGrid.Views.Grid.NewItemRowPosition.Bottom : DevExpress.XtraGrid.Views.Grid.NewItemRowPosition.None; gridView.OptionsNavigation.AutoFocusNewRow = autoNewRow; gridView.OptionsNavigation.AutoMoveRowFocus = true; gridView.OptionsNavigation.EnterMoveNextColumn = true; //重新设置弹出菜单的操作项。 GridControlEx grdEx = xtraGrid as GridControlEx; if (grdEx != null) { grdEx.ReSetContextMenu(appendMenus); } }
/// <summary> /// 动态列绑定处理相关。 /// </summary> /// <param name="dataSource"></param> /// <param name="gridControl"></param> /// <param name="xmlFileName"></param> public void CreateDataBinding(MB.WinBase.Data.HViewDataConvert <T> convertObject, List <T> lstEntitys, string gridLayoutCfgName) { using (MB.Util.MethodTraceWithTime trace = new MB.Util.MethodTraceWithTime("MB.WinClientDefault.Common.UIDynamicColumnBinding<" + typeof(T).FullName + ">.CreateDataBinding")) { _HViewConvertObject = convertObject; _CurrentEditEntitys = lstEntitys; var gridViewLayoutInfo = MB.WinBase.LayoutXmlConfigHelper.Instance.GetGridColumnLayoutInfo(_CurrentXmlFileName, gridLayoutCfgName); MB.XWinLib.XtraGrid.DynamicColumnBandGridHelper <T> dynamicBandHelper = new MB.XWinLib.XtraGrid.DynamicColumnBandGridHelper <T>(); _CurrentEditTable = convertObject.Convert(lstEntitys, _ColPropertys); onAfterDataConvert(); if (convertObject.ConvertCfgParam.DynamicColumnCaption) { gridViewLayoutInfo = dynamicBandHelper.ResetDynamicCaptionColumnViewLayout(convertObject, gridViewLayoutInfo); } else { gridViewLayoutInfo = dynamicBandHelper.ResetDynamicColumnViewLayout(convertObject, gridViewLayoutInfo); } var detailBindingParams = new MB.XWinLib.GridDataBindingParam(_XtraGrid, _CurrentEditTable, false); MB.XWinLib.XtraGrid.XtraGridEditHelper.Instance.CreateEditXtraGrid(detailBindingParams, _ColPropertys, _EditCols, gridViewLayoutInfo); //if (convertObject.ConvertCfgParam.DynamicColumnCaption) { iniDynamicBandColumns(); // } MB.XWinLib.XtraGrid.XtraGridViewHelper.Instance.SetGridViewNewItem(_XtraGrid, false); _XtraGrid.ReSetContextMenu(XtraContextMenuType.QuickInput | XtraContextMenuType.Export | XtraContextMenuType.SaveGridState); setDynamicColumnOnFocusedRowChanged(_AdvBandGridView.FocusedRowHandle); } }