在 Devexpress 中修改 Master-Detail 网格中的列 header 名称

Modifying column header names in Master-Detail grid in Devexpress

我有一个 Master-Detail 设置了 2 个网格。在主网格上,我将 ShowOnlyPredefinedDetails 选项设置为 false。 这意味着我看到了一个小 + 号,它允许我扩展细节网格的细节(在主网格中)。我想重命名 该部分中的某些列以及隐藏某些列。我正在使用 VB.NET 我该怎么做。见图像。

您可以通过使用网格控件 ViewRegistered 事件来完成此操作,您可以从那里修改该网格视图中的列,这些列中包含您要修改、重命名或删除的列。这是一个示例,希望对您有所帮助:

 private void myGridControl_ViewRegistered(object sender, DevExpress.XtraGrid.ViewOperationEventArgs e)
    {
        if (e != null)
        {
            if (e.View != null)
            {
               //Inside of this statement you can adjust, add, and modify all of the columns inside of that grid that appears when you click on the +

                (e.View as GridView).Columns["myHiddenColumn"].Visible = false;
                (e.View as GridView).Columns.Add(new GridColumn() { Name = "AddColumn", Caption = "Name To Display", Visible = true, FieldName = "DataField"});
                (e.View as GridView).Columns["DataField"].OptionsColumn.AllowEdit = false;
                (e.View as GridView).Columns["DataField"].OptionsColumn.AllowFocus = false;
                (e.View as GridView).Columns["DataField"].OptionsColumn.ReadOnly = true;
            }
        }
}

我认为您需要做的就是为您的详细信息创建第二个网格视图。如果您还没有这样做,请执行以下操作:

  1. 在您的网格设计器中,单击 "Retrieve Details"(如果您尚未这样做)。这将使设计者认识到您的绑定中有第二个级别 object:

  1. 看到第二层后,现在您需要一个新的网格视图。单击 "Click here to change view" 和 select "Create a new view" 并选择 "GridView."

现在您将看到来自设计器的两个网格视图,单击一个或另一个会将菜单的上下文更改为左侧:

例如,如果您有 gridView2 selected,当您单击 "Layout" 菜单时,它将显示详细信息网格的当前布局,而不是主网格.从这里,您可以根据需要删除或添加列。同样,从 "Columns" 菜单中您将看到新列(您可能必须通过将它们拖过来将它们添加到视图中),并且您可以更改 Caption 属性 来更改标题文本。

我建议您使用 Data Annotation 属性和 data-classes 的属性来声明数据在 GridControl 中的显示方式:

要跳过特定 属性 的列生成,您可以使用 <DisplayAttribute(AutoGenerateField := false)> 声明标记此 属性。

要防止列显示,您可以使用 <DisplayAttribute(Order := -1)> 声明标记此 属性。稍后,用户可以通过 Column Chooser UI.

显示此列

要指定列标题,请使用 <DisplayAttribute(Name := "YOUR CAPTION")> 声明。

您还可以控制 filtering/editing/formatting 和验证功能。

相关链接: