logo Devexpress WPF控件文档中心

焦点、导航、选择


焦点、导航、选择部分提供了如何改变行/单元格焦点和选择行/单元格的信息。

概念

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.CurrentItem属性返回聚焦的数据项。DataControlBase.SelectedItem 属性返回最先被选中的项目(DataControlBase.SelectedItems 集合的第一个项目)。焦点行、卡片或节点可能不会被选中。
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


在线咨询
联系我们

客服热线
023-68661681

QQ客服

意见反馈


添加微信获专业服务

TOP