焦点、导航、选择
焦点、导航、选择部分提供了如何改变行/单元格焦点和选择行/单元格的信息。
概念
1. 焦点和导航
描述了如何在代码中聚焦行和单元格。提供如何在行和单元格之间移动焦点的信息。
void Button_Click(object sender, RoutedEventArgs e) { FocusRowInGrid(); } // 行选中 public void FocusRowInGrid() { view.FocusedRowHandle = 2; } // 单元格选中 public void FocusCellInGrid() { grid.CurrentColumn = view.VisibleColumns[2]; view.FocusedRowHandle = 0; }
2. 迭代代码中的行和单元格。
描述如何逐一访问行和单元格。
3. 行选择
描述了如何选择行、卡片和节点,获取它们的值,以及改变所选项目的外观。
要启用多行、卡片或节点选择。
- 检查DataViewBase.NavigationStyle属性是否设置为GridViewNavigationStyle.None。
- 将DataControlBase.SelectionMode属性设置为MultiSelectMode.Row或MultiSelectMode.MultipleRow。
DataControlBase.SelectedItems集合以行/节点被选中的相同顺序填充项目。要获得按可见索引排序的选定节点,请使用TreeListControlBase.GetSelectedNodes方法。要获得按可见索引排序的所选项目的行柄,请使用DataControlBase.GetSelectedRowHandles方法。
void Button_Click(object sender, RoutedEventArgs e) { SelectRowInColumn(6); } //选中行 public void SelectRowInColumn(object value) { grid.BeginSelection(); grid.UnselectAll(); for (int index = 0; index < grid.VisibleRowCount; index++) { int rowHandle = grid.GetRowHandleByVisibleIndex(index); var cellValue = grid.GetCellValue(rowHandle, "Visits"); if (cellValue != null && cellValue.Equals(value)) grid.SelectItem(rowHandle); } grid.EndSelection(); }获取选定的行
void ProcessSelectedRows(GridControl gridControl, GridViewBase view) { gridControl.BeginSelection(); foreach (int rowHandle in gridControl.GetSelectedRowHandles()) { if (Convert.ToDouble(gridControl.GetCellValue(rowHandle, "Visits")) < 10) gridControl.UnselectItem(rowHandle); } gridControl.EndSelection(); }原文出处:Row Selection | WPF Controls | DevExpress Documentation
4. 单元格选择
描述如何选择单元格,获取其值,以及改变所选单元格的外观。
下方代码讲述如何改变选中单元格的外观:
<dxg:GridColumn FieldName="Visits" IsSmart="True"> <dxg:GridColumn.CellStyle> <Style TargetType="dxg:LightweightCellEditor"> <Style.Triggers> <Trigger Property="SelectionState" Value="Selected"> <Setter Property="Background" Value="LightGreen"/> </Trigger> <Trigger Property="SelectionState" Value="FocusedAndSelected"> <Setter Property="Background" Value="Green"/> </Trigger> </Style.Triggers> </Style> </dxg:GridColumn.CellStyle> </dxg:GridColumn>获取选定的值:
public IEnumerable<string> GetCellsDisplayText() { var list = new List<string>(); foreach (var cell in view.GetSelectedCells()) list.Add(grid.GetCellDisplayText(cell.RowHandle, cell.Column)); return list; }设置单元格是否可选
void View_CanSelectCell(object sender, CanSelectCellEventArgs e) { e.CanSelectCell = e.Column.FieldName != "Visits"; } void View_CanUnselectCell(object sender, CanUnselectCellEventArgs e) { e.CanUnselectCell = e.Column.FieldName != "Birthday"; }
5. 共同特点
包含共同特征和杂项。详情参考:Common Selection Features | WPF Controls | DevExpress Documentation