Ejemplo n.º 1
0
        /// <summary>
        /// Worksheet Range Data Changed
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Worksheet_RangeDataChanged(object sender, unvell.ReoGrid.Events.RangeEventArgs e)
        {
            bool isDeleteRows = false;

            if (e.Range.Cols >= _Worksheet.UsedRange.Cols) //delete whole rows
            {
                isDeleteRows = true;
                for (int rowIndex = e.Range.StartPos.Row; rowIndex <= e.Range.EndRow; rowIndex++)
                {
                    IRecordModel recordModel = (from one in _Records where one.RowIndex == rowIndex select one).FirstOrDefault();
                    if (recordModel != null)
                    {
                        _Records.CollectionChanged -= Records_CollectionChanged;
                        _Records.Remove(recordModel);
                        _Records.CollectionChanged += Records_CollectionChanged;
                    }
                }
                if (isDeleteRows)
                {
                    _Worksheet.DeleteRows(e.Range.StartPos.Row, e.Range.Rows);

                    for (int i = e.Range.StartPos.Row; i < _Records.Count; i++)
                    {
                        _Records.ElementAt(i).RowIndex = i;
                    }
                }
            }
            else //delete parts of rows
            {
                for (int rowIndex = e.Range.StartPos.Row; rowIndex <= e.Range.EndRow; rowIndex++)
                {
                    AddOrUpdateOneFromUi(rowIndex, e.Range.StartPos.Col, e.Range.EndCol);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Paste Data
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Worksheet_AfterPaste(object sender, unvell.ReoGrid.Events.RangeEventArgs e)
        {
            RangePosition range = e.Range;

            AddOrUpdateRecords(range);
        }