多级头结构WPF

时间:2012-08-28 22:47:17

标签: c# wpf header multi-level

我需要在WPF中进行标题结构预览。我已经研究过使用StackPanels和DockPanels,似乎无法准确掌握所需内容。我还需要一种编程方式来创建标头结构,因为它是根据用户提供的信息创建的。

我需要看起来像这样:

| ---------- ----------- Superheader | | -------- ---------头| -Header- | | -Subheader- | -Subheader- | -------- |

使用StackPanels和DockPanels的主要问题是它们只占用最小空间而不是填充以匹配超级头宽度。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您是否考虑过使用DataGrid控件(documentation)?

您可以创建一个类来保存标题。例如:

public class BiologicalClassification
{
    public string Kingdom { get; set; }
    public string Phylum { get; set; }
    public string Class { get; set; }
    public string Order { get; set; }
    public string Family { get; set; }
    public string Genus { get; set; }
    public string Species { get; set; }
}

然后,您可以将所有标题数据存储在代码隐藏或视图模型的List<BiologicalClassification>中。

然后,您可以使用绑定在DataGrid中显示此数据:

<DataGrid ItemsSource="{Binding BiologicalClassifications}"
          AutoGenerateColumns="False"
          GridLinesVisibility="None">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Kingdom" Binding="{Binding Kingdom}"/>
        <DataGridTextColumn Header="Phylum" Binding="{Binding Phylum}" />
        ...
    </DataGrid.Columns>
</DataGrid>

这将确保您的超级标头(在此示例中为Kingdom)始终为恒定宽度。与其余标题相同。