public AbstractComponentData GetData()
 {
     if (grid.SelectedCells.Count == 0)
     {
         return(null);
     }
     else if (grid.SelectedCells.Count == 1)
     {
         DataGridCellInfo         cellInfo = grid.SelectedCells[0];
         SpreadsheetComponentCell cell     = cellInfo.Column.GetCellContent(cellInfo.Item) as SpreadsheetComponentCell;
         return(cell.data);
     }
     else
     {
         PointInt rangeStart = new PointInt(grid.Columns.Count, grid.Items.Count);
         PointInt rangeEnd   = new PointInt(-1, -1);
         foreach (DataGridCellInfo cellInfo in grid.SelectedCells)
         {
             PointInt position = GetCellPositionFromCellInfo(cellInfo);
             rangeStart.X = Math.Min(rangeStart.X, position.X);
             rangeStart.Y = Math.Min(rangeStart.Y, position.Y);
             rangeEnd.X   = Math.Max(rangeEnd.X, position.X);
             rangeEnd.Y   = Math.Max(rangeEnd.Y, position.Y);
         }
         string startId = data.cells[rangeStart.Y][rangeStart.X].id;
         string endId   = data.cells[rangeEnd.Y][rangeEnd.X].id;
         SpreadsheetRangeData rangeData = new SpreadsheetRangeData(this.valueStore, this.data, startId, endId);
         return(rangeData);
     }
 }
Пример #2
0
 public WindowDatatable(WorksheetData worksheetData, SpreadsheetRangeData rangeData)
 {
     this.worksheetData = worksheetData;
     this.rangeData     = rangeData;
     InitializeComponent();
 }