我想在深度为 1 级的树视图中显示数据库的简单模式。所以我有一个表的集合,我想将其名称显示为元素的标题,并且对于每个表都有一个包含名称、类型等的列的集合。
但是,在每个表中,我想在网格中显示这些列定义,标题指定列定义的属性,并且在每一行中,定义本身。
完成这项工作的一种方法是将其视为一个树视图,其中每个表都有一个子序列(列定义的整个集合),然后显示为网格:
<TreeView ItemsSource="{Binding Tables}" x:Name="treeView" MinWidth="400" >
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=ListofONEelement}">
<TextBlock Text="{Binding Path=TableName}" />
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<ListView ItemsSource="{Binding GroupOfColumnDefinition}">
<ListView.View>
<GridView>
<GridViewColumn Header="ColumnName" DisplayMemberBinding="{Binding Path=Item1}" />
<GridViewColumn Header="Model" DisplayMemberBinding="{Binding Path=Item2.Model}" />
<GridViewColumn Header="ColumnStatus" DisplayMemberBinding="{Binding Path=Item2.ColumnStatus}" />
<GridViewColumn Header="ColumnType" DisplayMemberBinding="{Binding Path=Item2.ColumnType}" />
</GridView>
</ListView.View>
</ListView>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
但是我必须创建这个中间结构 ListofONEelement
才能使其工作,因为树视图中的层次结构仅在有要枚举的项目时才存在。
是否有其他更好的方法可以直接在 XAML中执行此操作,而无需在我的 ViewModel 中创建自定义类型?