如何将此表从水平更改为垂直
本文关键字:垂直 水平 | 更新日期: 2023-09-27 18:35:10
我尝试可视化列表>但是当涉及到更改表格的方向时,我不知道该怎么做。
现在的表格:
list1a list1b list1c
list2a list2b
list3a list3b list3c
我需要什么:
list1a list2a list3a
list1b list2b list3b
list1c list3c
通过将堆叠面板方向更改为垂直,我得到了什么:
list1a
list1b
list1c
list2a
list2b
list3a
list3b
list3c
我的 Xaml:
<Window.Resources>
<DataTemplate x:Key="DataTemplate_Level2">
<Grid Height="26" Width="120">
<TextBlock Text="{Binding title}" Margin="4" />
</Grid>
</DataTemplate>
<DataTemplate x:Key="DataTemplate_Level1">
<ItemsControl ItemsSource="{Binding}" ItemTemplate="{DynamicResource DataTemplate_Level2}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</DataTemplate>
</Window.Resources>
<Grid>
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<ItemsControl x:Name="tbParts" ItemTemplate="{DynamicResource DataTemplate_Level1}" />
</ScrollViewer>
</Grid>
编辑:
我的表模型的人口:
List<string> nodes = GetNodes()
List<List<Part>> table = new List<List<Part>>();
for (int i = 0; i < nodes.Count; i++)
{ TestOutput.table.Add(new List<Part>(parts.Where(x => x.techRequired == nodes[i]).ToList())); }
从您发布的代码中,我假设您嵌套了两个 ItemsControls。第一个项目控件应该有一个堆栈面板,方向 = 水平 nope ?然后,内部的 ItemsControls 应为 Direction = Vertical。我会用一些代码更清楚:-) :
<Window.Resources>
<DataTemplate x:Key="DataTemplate_Level2">
<Grid Height="26" Width="120">
<TextBlock Text="{Binding title}" Margin="4" />
</Grid>
</DataTemplate>
<DataTemplate x:Key="DataTemplate_Level1">
<ItemsControl ItemsSource="{Binding}" ItemTemplate="{DynamicResource DataTemplate_Level2}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</DataTemplate>
</Window.Resources>
<Grid>
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<ItemsControl x:Name="tbParts" ItemTemplate="{DynamicResource DataTemplate_Level1}">
<ItemsControl.ItemsPanel>
<StackPanel Orientation="Horizontal"/>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ScrollViewer>
</Grid>