我在Delphi中有一个网格的程序,我需要添加这个属性来展开按网格中的数据分组的所有折叠。
procedure TProjectForm.dxDBGridEventDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
inherited;
DrawHighlight(ACanvas);
TcxGridDbTableView.ViewData.Expand(True);
end;
我收到以下错误:
E2233 Property 'ViewData' inaccessible here
请帮助。我还需要删除此网格中分组数据的可折叠按钮。谢谢
答案 0 :(得分:4)
你可以毫无问题地致电cxGrid1DBTableView1.ViewData.Expand(True)
,只要你没有像q中的那样进行绘画活动。但是,如果您使用下面的示例,则实际上不需要执行此操作。
这很好用
procedure TDevexGroupingForm.FormCreate(Sender: TObject);
begin
cxGrid1DBTableView1.Columns[2].GroupIndex := 0; // group by the 3rd column
// NOTE: this step is only necessary if the table view has not been grouped at design-time
cxGrid1DBTableView1.DataController.Options := cxGrid1DBTableView1.DataController.Options
+ [dcoGroupsAlwaysExpanded]; // this hides the +/- buttons of the grouped nodes
cxGrid1DBTableView1.DataController.FocusedRowIndex := 0; // focuses the first group
end;
注意:这已在@Nil的建议中更新。
第一行,只有在设计时尚未对TableView进行分组时才需要设置列的GroupIndex。
设置FocusedRowIndex是可选的,具体取决于您希望TableView最初显示的方式
事实上,通过设置DataController Options属性以包含dcoGroupsAlwaysExpanded
的单一步骤,可以实现隐藏+/-分组按钮和扩展所有顶级组节点选项。
顺便提一下设置DataController选项以禁止绘制展开/折叠按钮,这些选项来自文章https://www.devexpress.com/Support/Center/Question/Details/Q105527/how-do-i-hide-the-expand-button-on-a-grid