public override void CreateList(AutoWidthCalculatorArgs e)
        {
            DataControlAutoWidthCalculatorArgs args = e as DataControlAutoWidthCalculatorArgs;

            this.Objects.Clear();
            IList list  = args.VisibleColumns;
            int   count = list.Count;

            for (int i = 0; i < count; i++)
            {
                XRResizableFieldHeader column = (XRResizableFieldHeader)list[i];
                int minWidth = (int)GraphicsUnitConverter.Convert(2, GraphicsDpi.HundredthsOfAnInch, containerControl.Dpi);
                int maxWidth = (int)containerControl.WidthF - (containerControl.VisibleHeaders.Count - 2) * (int)GraphicsUnitConverter.Convert(2, GraphicsDpi.HundredthsOfAnInch, containerControl.Dpi);
                this.Objects.Add(new AutoWidthObjectInfo(column, minWidth, maxWidth, (int)column.Width, (int)column.Width, false));
            }
        }
示例#2
0
        internal override void UpdateDataLayout()
        {
            if (!isLoading)
            {
                this.BeginInit();

                DataControlAutoWidthCalculatorArgs args = new DataControlAutoWidthCalculatorArgs(null, true, (int)this.WidthF);
                System.Collections.Generic.List <XRResizableFieldHeader> visibleColumns = new System.Collections.Generic.List <XRResizableFieldHeader>();

                System.Collections.Generic.List <XRFieldHeader> visibleHeaders = this.VisibleHeaders;

                if (visibleHeaders.Count > 0)
                {
                    for (int i = 0; i < visibleHeaders.Count; i++)
                    {
                        visibleColumns.Add(visibleHeaders[i] as XRResizableFieldHeader);
                    }

                    args.VisibleColumns = visibleColumns;

                    XRDataControlAutoWidthCalculator calc = new XRDataControlAutoWidthCalculator(this);
                    calc.Calc(args);
                    calc.UpdateRealObjects(args, true);

                    float resultingWidth = 0;
                    for (int i = 0; i < visibleHeaders.Count - 1; i++)
                    {
                        resultingWidth += ((XRResizableFieldHeader)visibleHeaders[i]).Width;
                    }

                    ((XRResizableFieldHeader)visibleHeaders[visibleHeaders.Count - 1]).Width = this.WidthF - resultingWidth;
                }

                this.EndInit();
            }
        }
        protected override void DoCalc(AutoWidthCalculatorArgs e)
        {
            DataControlAutoWidthCalculatorArgs args = e as DataControlAutoWidthCalculatorArgs;

            this.CalcAutoWidth(args);
        }