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); } }
public WindowDatatable(WorksheetData worksheetData, SpreadsheetRangeData rangeData) { this.worksheetData = worksheetData; this.rangeData = rangeData; InitializeComponent(); }