我尝试将List>可视化但是当谈到改变我的桌子的方向时,我不知道如何做到这一点。
现在表:
list1a list1b list1c
list2a list2b
list3a list3b list3c
我需要的是什么:
list1a list2a list3a
list1b list2b list3b
list1c list3c
通过将stackpannel方向更改为vertical来获得的结果:
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())); }
答案 0 :(得分:1)
根据你发布的代码,我认为你有两个嵌套的ItemsControls。第一个ItemControl应该有一个StackPanel,Orientation = Horizontal nope?然后内部ItemsControls应该是Orientation = 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>