【问题标题】:WPF Nested Data Grid with fixed header and sub header具有固定标题和子标题的 WPF 嵌套数据网格
【发布时间】:2015-09-03 07:50:06
【问题描述】:

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

  1. 主网格行的数据与主标题列对齐,嵌套网格行的数据与副标题列对齐。
  2. 单击主网格行时,嵌套网格行应显示与子标题列对应的数据。
  3. 用户必须能够展开多个主网格行。

下面是描绘我们需要的网格的图像。

如上图所示,灰色的行是与 Main header 对齐的主行,两个白色行是与 Sub header 对齐的子行(operacao、autent.、hora 等)

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

【问题讨论】:

    标签: wpf wpf-controls wpfdatagrid


    【解决方案1】:

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

    1. 为了创建这样的控件,您必须创建标签 与预期设计的网格分开并对齐它们 集合属性的宽度,这些属性是网格 列。
    2. 创建一个由数据网格继承的自定义控件并处理 数据网格中的鼠标和键事件。
    3. 在主 XAML 文件中使用此自定义控件,数据源等于 到主集合(列表)并将网格的列绑定到 数据源的属性。
    4. 在数据网格内使用带有 RowDetailsTemplate 的数据模板 这将进一步包含自定义控件(数据网格)。
    5. 将主集合中存在的内部集合绑定到此 内部自定义控件。这就是嵌套可以通过使用实现的方式 数据网格组件。
    6. 对于展开和折叠功能覆盖鼠标 自定义控件的 Down/Mouse Up 事件并处理 Row Details 控件的可见性。这是您可以控制扩展的方式 并折叠网格行。

    您还可以覆盖点击事件并处理进一步的导航。此外,为了实现相同的设计,请在网格列中进行一些调整。您可以通过上述方法实现此行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-10
      • 2012-05-17
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多