/// <summary> /// 获取选中单元格中左上角的单元格 /// </summary> private void Get_Select_LeftTop_And_RigthDown_Cell(out CellData leftTop, out CellData rigthDown) { leftTop = null; rigthDown = null; foreach (var item in SelectCells) { if (leftTop == null) { leftTop = item.Data; } else { if (item.Data.ColumnIndex < leftTop.ColumnIndex || item.Data.RowIndex < leftTop.RowIndex) { leftTop = item.Data; } } if (rigthDown == null) { rigthDown = item.Data; } else { if (item.Data.ColumnIndex > rigthDown.ColumnIndex || item.Data.RowIndex > rigthDown.RowIndex) { rigthDown = item.Data; } } } }
/// <summary> /// 添加一个单元格 /// </summary> /// <param name="columnIndex"></param> /// <param name="rowIndex"></param> /// <param name="content"></param> public CellData AddCell(int columnIndex, int rowIndex, string content, float rowHeigth, float columnWidth, int rowMerge, int columnMerge, bool isNull) { var cell = TableController.CellController.Create <TableCell>(); var data = CellDatas.FirstOrDefault(p => p.ColumnIndex == columnIndex && p.RowIndex == rowIndex); if (data != null) { data.Content = content; return(data); } data = new CellData(TableController, cell, columnIndex, rowIndex, content, rowHeigth, columnWidth, rowMerge, columnMerge, isNull); if (columnIndex < ColumnDatas.Count) { var column = ColumnDatas[columnIndex]; data.ColumnWidth = column.Width; } if (rowIndex < RowDatas.Count) { var row = RowDatas[rowIndex]; data.RowHeigth = row.Heigth; } CellDatas.Add(data); return(data); }
/// <summary> /// 触发合并单元格事件 /// </summary> /// <param name="arg0"></param> /// <param name="arg1"></param> private void Value_MergeDataEvent(CellData arg0, Vector2 arg1) { if (MergeEvent != null) { MergeEvent.Invoke(arg0, arg1); } }
private bool CellDatas_InsertEvent(int index, CellData value) { if (cellDatas.Count < 1 && value.RowIndex == RowIndex) {//如果是这一行,且子物体没有 Heigth = value.RowHeigth; } return(true); }
private bool CellDatas_RemoveEvent(int index, CellData value) { value.RowData.CellDatas.Remove(value); value.ColumnData.CellDatas.Remove(value); GameObject.Destroy(value.TableCell.gameObject); RefreshSize(); return(true); }
private bool CellDatas_InsertEvent(int index, CellData value) { if (value.RowIndex == 0 && value.ColumnIndex == ColumnIndex) {//如果是第一行 value.ContentChange -= Value_ContentChange; value.ContentChange += Value_ContentChange; Width = value.ColumnWidth; } return(true); }
private bool CellDatas_ValueChange(int index, CellData origingValue, CellData value) {//修改数据的话,直接把之前的删掉,换一个新的 origingValue.RowData.CellDatas.Remove(origingValue); origingValue.ColumnData.CellDatas.Remove(origingValue); CellDatas_InsertEvent(index, value); if (origingValue == value) { return(false); //一样的数据直接不给修改 } GameObject.Destroy(origingValue.TableCell.gameObject); return(true); }
/// <summary> /// 删除行 /// </summary> /// <param name="cellData"></param> public void RemoveRow(CellData cellData) { int rowIndex = cellData.RowIndex; var rows = Data.CellDatas.Where(p => p.RowIndex == cellData.RowIndex).ToArray(); foreach (var item in rows) { Data.CellDatas.Remove(item); } var cells = Data.CellDatas.Where(p => p.RowIndex > rowIndex); foreach (var item in cells) { item.RowIndex--; } }
/// <summary> /// 删除列 /// </summary> /// <param name="cellData"></param> public void RemoveColumn(CellData cellData) { int columnIndex = cellData.ColumnIndex; var columns = Data.CellDatas.Where(p => p.ColumnIndex == cellData.ColumnIndex).ToArray(); foreach (var item in columns) { Data.CellDatas.Remove(item); } var cells = Data.CellDatas.Where(p => p.ColumnIndex > columnIndex); foreach (var item in cells) { item.ColumnIndex--; } }
private bool CellDatas_InsertEvent(int index, CellData value) { value.MergeDataEvent -= Value_MergeDataEvent; value.MergeDataEvent += Value_MergeDataEvent; #region 处理行 var row = RowDatas.FirstOrDefault(p => p.RowIndex == value.RowIndex); if (row == null) { var rowButton = TableController.RowController.Create <TableRowButton>(); row = new RowData(TableController, rowButton, value.RowIndex) { RowIndex = value.RowIndex }; value.RowData = row; row.Heigth = value.RowHeigth; RowDatas.Add(row); } row.CellDatas.Add(value); value.RowData = row; #endregion #region 处理列 var column = ColumnDatas.FirstOrDefault(p => p.ColumnIndex == value.ColumnIndex); if (column == null) { var columnButton = TableController.ColumnController.Create <TableColumnButton>(); column = new ColumnData(TableController, columnButton, value.ColumnIndex) { ColumnIndex = value.ColumnIndex }; value.ColumnData = column; column.Width = value.ColumnWidth; ColumnDatas.Add(column); } column.CellDatas.Add(value); value.ColumnData = column; #endregion RefreshSize(); value.Refresh(); return(true); }
/// <summary> /// 如果列名称发生变化 /// </summary> /// <param name="content"></param> /// <returns></returns> private bool Value_ContentChange(string content, CellData value) { ColumnButton.ChangeButtonText(content); return(true); }