具有固定标头和子标头的WPF嵌套数据网格

时间:2015-09-03 07:50:07

标签: wpf wpf-controls wpfdatagrid

我想创建一个WPF嵌套数据网格,它将具有固定的标题和子标题。下面是创建嵌套网格控件所需的一些要点: -

  1. 主网格行将使数据与主标题列对齐,嵌套网格行将使数据与子标题列对齐。
  2. 单击主网格行时,应显示嵌套网格行,其中包含与子标题列对应的数据。
  3. 用户必须能够扩展多个主网格行。
  4. 下面的图片描绘了我们需要的网格。

    enter image description here

    如上面的网格所示,灰色行是与主标题对齐的主行,两个白色行是与Sub标题对齐的子行(operacao,autent。,hora等)

    必须绑定到此控件的集合(主网格)具有另一个集合作为属性,其中包含Sub行(嵌套网格)的行。

1 个答案:

答案 0 :(得分:1)

可以使用以下层次结构来实现此功能:

  1. 要创建此类控件,您必须创建标签 与预期设计的网格分开并对齐它们 集合属性的宽度,表示为网格 列。
  2. 创建由数据网格继承的自定义控件并处理 数据网格中的鼠标和键事件。
  3. 在主XAML文件中使用此自定义控件,数据源相等 到主集合(列表)并将网格的列绑定到 数据源的属性。
  4. 使用RowDetailsTemplate在数据网格中使用数据模板 这将进一步包含自定义控件(数据网格)。
  5. 将Main集合中存在的内部集合绑定到此 内部自定义控制。这就是如何通过使用实现嵌套 数据网格组件。
  6. 对于展开和折叠功能,覆盖鼠标 自定义控件的向下/鼠标向上事件并处理行详细信息 控制的可见性。这是您可以控制扩展的方法 和网格行的崩溃。
  7. 您还可以覆盖点击事件并处理进一步的导航。另外,为了实现相同的设计,请在网格列中进行一些调整。您可以通过上述方法实现此行为。