示例#1
0
 /// <summary>
 /// Initializes a new instance of a <see cref="ExcelUndoStack"/>.
 /// </summary>
 /// <param name="flex"><see cref="C1FlexGrid"/> that owns this undo stack.</param>
 public ExcelUndoStack(C1FlexGridBook flex)
 {
     _flex = flex;
     flex.PrepareCellForEdit += flex_PrepareCellForEdit;
     flex.CellEditEnded += flex_CellEditEnded;
     flex.ResizingColumn += flex_ResizingColumn;
     flex.ResizedColumn += flex_ResizedColumn;
     flex.ResizingRow += flex_ResizingRow;
     flex.ResizedRow += flex_ResizedRow;
     flex.SortingColumn += flex_SortingColumn;
 }
        /// <summary>
        /// Initializes a new instance of an <see cref="ExcelContextMenu"/>.
        /// </summary>
        /// <param name="grid"><see cref="C1FlexGridBook"/> that owns this context menu.</param>
        internal ExcelContextMenu(C1FlexGridBook grid)
        {
            // save reference to parent grid
            _grid = grid;

            // build menu
            Reset();

            // set up event handlers for context menu
            _grid.MouseMove += _grid_MouseMove;
            _grid.MouseRightButtonDown += _grid_MouseRightButtonDown;
            _grid.MouseRightButtonUp += _grid_MouseRightButtonUp;
        }
示例#3
0
        /// <summary>
        /// Initializes a new instance of a <see cref="SortDialog"/>.
        /// </summary>
        public SortDialog(C1FlexGridBook owner)
            : this()
        {
            // save reference to owner grid (the one being sorted)
            _owner = owner;

            // initialize sort descriptors
            _sdc.Clear();
            var sel = _owner.Selection;
            if (sel.IsValid)
            {
                for (int c = sel.LeftColumn; c <= sel.RightColumn; c++)
                {
                    var sd = new UnboundSortDescription(_owner.Columns[c], ListSortDirection.Ascending);
                    _sdc.Add(sd);
                }
            }
            else
            {
                _sdc.Add(new UnboundSortDescription());
            }

            // update UI when the collection/selection change
            _flex.SelectionChanged += _flex_SelectionChanged;

            // add data map to "Column" column
            var col = _flex.Columns["Column"];
            var dctColumn = new Dictionary<Column, string>();
            foreach (var c in _owner.Columns)
            {
                dctColumn[c] = GetColumnName(c);
            }
            col.ValueConverter = new ColumnValueConverter(dctColumn);

            // add data map to "Direction" column
            col = _flex.Columns["Direction"];
            var dctOrder = new Dictionary<ListSortDirection, string>();
            dctOrder[ListSortDirection.Ascending] = "Ascending";
            dctOrder[ListSortDirection.Descending] = "Descending";
            col.ValueConverter = new ColumnValueConverter(dctOrder);

            // show sort descriptors on grid
            _flex.ItemsSource = _sdc;
        }
示例#4
0
        // ** ctor
        public ExcelCalcEngine(C1FlexGridBook grid)
        {
            // save reference to parent grid
            _flex = grid;

            // parse multi-cell range references ($A2:B$4)
            IdentifierChars = "$:";

            // register Hyperlink function (returns a HyperlinkButton)
            CacheExpressions = false;
            RegisterFunction("hyperlink", 2, (parms) =>
                {
                    var h = new HyperlinkButton();
                    //h.NavigateUri = new Uri((string)parms[0]);
                    h.Content = (string)parms[1];
                    h.BorderThickness = new Thickness(0);
                    h.BorderBrush = null;
                    h.VerticalAlignment = VerticalAlignment.Center;
                    h.HorizontalAlignment = HorizontalAlignment.Left;
                    h.Foreground = _brLinkForeground;
                    //h.TargetName = "_blank";
                    return h;
                });
        }
示例#5
0
 public CellStyleChangeAction(C1FlexGridBook flex)
 {
     _flex      = flex;
     _oldStyles = new Dictionary <CellRange, CellStyle>();
     SaveStyles(_oldStyles);
 }
 public CellStyleChangeAction(C1FlexGridBook flex)
 {
     _flex = flex;
     _oldStyles = new Dictionary<CellRange, CellStyle>();
     SaveStyles(_oldStyles);
 }
示例#7
0
 public SortAction(C1FlexGridBook flex)
 {
     _flex = flex;
     _rowsBefore = new List<Row>();
     foreach (var row in _flex.Rows)
     {
         _rowsBefore.Add(row);
     }
 }
示例#8
0
 public EditAction(C1FlexGridBook flex)
 {
     _flex = flex;
     _range = _flex.Selection;
     _oldValue = GetValue();
 }
示例#9
0
 public RowResizeAction(C1FlexGridBook flex, CellRangeEventArgs e)
 {
     _flex = flex;
     _row = e.Row;
     _oldSize = _flex.Rows[_row].Height;
 }
示例#10
0
 /// <summary>
 /// Initializes a new instance of an <see cref="PasteAction"/>.
 /// </summary>
 public PasteAction(C1FlexGridBook flex)
 {
     _flex = flex;
     _oldSel = _newSel = flex.Selection;
 }
示例#11
0
 public ColumnResizeAction(C1FlexGridBook flex)
 {
     _flex = flex;
     _oldCols = _flex.ColumnLayout;
     _range = _flex.Selection;
 }
示例#12
0
 public InsertDeleteRowAction(C1FlexGridBook flex)
 {
     _flex = flex;
     _oldSel = _flex.Selection;
     _oldRows = new List<Row>();
     foreach (var row in _flex.Rows)
     {
         _oldRows.Add(row);
     }
 }
示例#13
0
 public InsertDeleteColumnAction(C1FlexGridBook flex)
 {
     _flex = flex;
     _oldSel = _flex.Selection;
     _oldColumns = new List<Column>();
     foreach (var col in _flex.Columns)
     {
         _oldColumns.Add(col);
     }
 }