0

DevExpress 网格允许自动创建一个显示复选框的特殊列。它们充当网格行的选择器。它是通过使能TableViewShowCheckBoxSelectorColumn属性来实现的。

有没有办法将此列固定在左侧,以便在水平滚动时始终可见?很明显,它不在.Grid.Columns集合中,所以还有其他方法吗?

4

3 回答 3

0

使用列对象名称并将 FixedStyle 属性设置为 left。示例:colUsername.FixedStyle = FixedStyle.Left;

于 2020-05-23T14:32:38.547 回答
0

这似乎是不可能做到的。

这个特殊的“选择器”列存在于视图中VisibleColumns,但不存在于.Grid.Columns. VisibleColumns可以从某个事件中获取它并设置column.Fixed = FixedStyle.Left;。这个操作最终会调用DataViewBehavior.RebuildVisibleColumnsCore,它会枚举.Grid.Columns没有选择器的列,所以最终不会考虑 Fixed 样式。

可能应该固定第一个数据列,因为这也固定选择器列。

于 2016-11-18T16:52:36.820 回答
0

devexpress 可能发布了解决方案 -> https://supportcenter.devexpress.com/Ticket/Details/T578471/fix-checkboxselectorcolumn-on-left-side

使用以下代码将静态构造函数添加到主窗口,以将选择器列固定在左侧。

     static MainWindow()
    {
        BaseColumn.FixedProperty.OverrideMetadata(typeof(GridColumn), new FrameworkPropertyMetadata(null, (d, value) => ((GridColumn)d).FieldName == TableView.CheckBoxSelectorColumnName ? FixedStyle.Left : value));
    }
于 2020-05-22T20:02:51.803 回答