概述

C1FlexGrid提供了创建轮廓树的功能,其中可以显示缩进结构,每个节点行旁边都有折叠/展开图标。 然后,用户可以展开和折叠轮廓以查看所需的细节级别。 为此,C1FlexGrid允许您使用其Tree属性和Subtotal方法。

现在,如果有任何关于:如何将网格绑定到分层数据源并在子网格中显示细节的想法,ComponentOne已经提供了一个“DataTree”演示,用来实现相同的效果。

这个Demo默认存放在这个位置中:Documents \ ComponentOne Samples \ WinForms \ C1FlexGrid \ CS \ DataTree。

C1FlexGrid: DataTree1

这是通过从C1FlexGrid控件派生控件(C1FlexDataTree)来实现的。 绑定时,控件会检测从属数据源并创建其附加实例以显示子表。

但是,如果需要在此分层显示中设置RightToLeft布局,则需要通过代码处理此问题。以下就是具体实现步骤:

实现从右到左的布局

本文将介绍通过代码处理这些子网格的呈现来实现从右到左布局的步骤。 按照下面提到的两个步骤这将很容易实现:

  • 首先,我们将父网格的RightToLeft属性设置为RightToLeft.Yes值。
this._flex.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
  • 接下来,在C1FlexDataTree.cs的UpdatePosition方法中,子位置和客户端大小计算如下:
rc.X = rc.Left - parent.ScrollableRectangle.Width;
rc.Y = rc.Bottom;
rc.Width = Cols[Cols.Count - 1].Left;
rc.Width = Math.Max(Cols[Cols.Count - 1].Left, parent.ScrollableRectangle.Width);

C1FlexGrid: Data Tree2

点击此处,下载示例Demo