Exemple #1
0
        private void SetTableColumns(NSTableView tableView)
        {
            // Always keep at least one column
            int numColumns = (int) (tableView.EnclosingScrollView.Frame.Width / maxColumnWidth);
            if (numColumns < 1)
            {
                numColumns = 1;
            }

            int existingColumnCount = tableView.TableColumns().Count();
            if (numColumns > existingColumnCount)
            {
                logger.Info("Add columns; {0} to {1}", existingColumnCount, numColumns);
                while (tableView.TableColumns().Count() < numColumns)
                {
                    var copy =  new NSTableColumn();
                    copy.Width = copy.MaxWidth = maxColumnWidth;

                    NSTableColumn column = tableView.TableColumns().First();
                    copy.DataCell = (NSCell) column.DataCell.Copy();
                    tableView.AddColumn(copy);
                }
                tableView.ReloadData();
            }
            else
            if (numColumns < existingColumnCount)
            {
                logger.Info("Remove columns; {0} to {1}", existingColumnCount, numColumns);
                while (tableView.TableColumns().Count() > numColumns)
                {
                    tableView.RemoveColumn(tableView.TableColumns().Last());
                }
                tableView.ReloadData();
            }
        }