Пример #1
0
        public void UpdateColumn(ListViewColumn col)
        {
            Editable = true;
            var hc = new NSTableHeaderCell {
                Title = col.Title ?? string.Empty
            };

            HeaderCell           = hc;
            HeaderCell.Alignment = col.Alignment.ToNSTextAlignment();

            DataView            = CellUtil.CreateCellView(context, backend, col.Views, backend.Columns.IndexOf(this));
            DataView.Identifier = Identifier;
            UpdateCachedViews(col.Views);

            if (col.CanResize)
            {
                ResizingMask |= NSTableColumnResizing.UserResizingMask;
            }
            else
            {
                ResizingMask &= ~NSTableColumnResizing.UserResizingMask;
            }
            if (col.Expands)
            {
                ResizingMask |= NSTableColumnResizing.Autoresizing;
            }
            else
            {
                ResizingMask &= ~NSTableColumnResizing.Autoresizing;
            }
            SizeToFit();
            TableView?.InvalidateIntrinsicContentSize();
        }
Пример #2
0
        public void UpdateColumn(ListViewColumn col, ListViewColumnChange change)
        {
            if (TableView == null)
            {
                throw new InvalidOperationException("Add the column to a table first");
            }
            switch (change)
            {
            case ListViewColumnChange.CanResize:
                if (col.CanResize)
                {
                    ResizingMask |= NSTableColumnResizing.UserResizingMask;
                }
                else
                {
                    ResizingMask &= ~NSTableColumnResizing.UserResizingMask;
                }
                break;

            case ListViewColumnChange.Expanding:
                if (col.Expands)
                {
                    ResizingMask |= NSTableColumnResizing.Autoresizing;
                }
                else
                {
                    ResizingMask &= ~NSTableColumnResizing.Autoresizing;
                }
                break;

            case ListViewColumnChange.Cells:
                DataView            = CellUtil.CreateCellView(context, backend, col.Views, backend.Columns.IndexOf(this));
                DataView.Identifier = Identifier;
                UpdateCachedViews(col.Views);
                TableView.ReloadData();
                break;

            case ListViewColumnChange.Title:
                HeaderCell.Title = col.Title ?? string.Empty;
                if (!col.CanResize)
                {
                    SizeToFit();
                }
                break;

            case ListViewColumnChange.Alignment:
                HeaderCell.Alignment = col.Alignment.ToNSTextAlignment();
                break;
            }
        }