protected void SetRows(IEnumerable <RowObject> rows)
 {
     BeginUpdate();
     SetObjects(rows);
     mFieldNames.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
     mFieldNames.Width += 10;             // Give it a bit of a margin to make it look better
     EndUpdate();
 }
Example #2
0
        public void GenerateListView(ObjectListView varListView, List <ListViewColumnsInfo> nameSizeList)
        {
            List <OLVColumn> columnsList = new List <OLVColumn>();
            var totalColumns             = nameSizeList.Count();
            int counter = 0;

            foreach (ListViewColumnsInfo nameSize in nameSizeList)
            {
                counter++;
                OLVColumn columnHeader = new BrightIdeasSoftware.OLVColumn();
                columnHeader.Text       = nameSize.Header;
                columnHeader.IsVisible  = nameSize.Visible;
                columnHeader.AspectName = nameSize.Header;

                // Only for last column
                if (totalColumns == counter)
                {
                    var lastColumn        = nameSizeList.Last();
                    var withoutLastColumn = nameSizeList.Where(x => !x.Header.Equals(lastColumn));
                    var withOfAll         = withoutLastColumn.Sum(x => x.ColumnSize);
                    columnHeader.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
                    int colWidthAfterAutoResizeByContent = columnHeader.Width;
                    if (nameSize.ColumnSize > colWidthAfterAutoResizeByContent)
                    {
                        columnHeader.Width = nameSize.ColumnSize;
                    }
                    else
                    {
                        columnHeader.Width = colWidthAfterAutoResizeByContent;
                    }
                }
                else
                {
                    columnHeader.Width = nameSize.ColumnSize;
                }

                // Set header style
                var headerstyle = new HeaderFormatStyle();
                headerstyle.SetBackColor(Color.FromArgb(83, 83, 91));
                headerstyle.SetForeColor(Color.White);
                columnHeader.HeaderFormatStyle = headerstyle;
                if (nameSize.IsButton)
                {
                    columnHeader.IsButton     = nameSize.IsButton;
                    columnHeader.TextAlign    = HorizontalAlignment.Center;
                    columnHeader.ButtonSizing = OLVColumn.ButtonSizingMode.FixedBounds;
                    columnHeader.ButtonSize   = new Size(15, 15);
                }
                columnsList.Add(columnHeader);
                varListView.AllColumns.Add(columnHeader);
            }
            varListView.Columns.AddRange(columnsList.Cast <System.Windows.Forms.ColumnHeader>().ToArray());
        }