我怎样才能将 a 垂直实现WrapPanel
为 a DataGrid
?ItemsPanel
遗嘱不是在高度上扩展,DataGrid
而是水平分成另一列(带有标题和全部)。我的问题类似于此线程上的示例 2如何使 DataGrid 与 WrapPanel 一起工作?
举个例子。如果所有行都不适合高度,则下一行从下一列开始
|H1 | H2 | |H1 |H2 |
-------------- --------------
|A1 | B1 | |A5 |B5 |
-------------- --------------
|A2 | B2 | |A6 |B6 |
-------------- --------------
|A3 | B3 | |A7 |B7 |
-------------- --------------
|A4 | B4 | | | |
-------------- --------------
如果数据网格的高度增加了,
|H1 | H2 | |H1 |H2 |
-------------- --------------
|A1 | B1 | |A7 |B7 |
-------------- --------------
|A2 | B2 | | | |
-------------- --------------
|A3 | B3 | | | |
-------------- --------------
|A4 | B4 | | | |
-------------- --------------
|A5 | B5 | | | |
-------------- --------------
|A6 | B6 | | | |
-------------- --------------
目前
我设法让它进入下一栏
<DataGrid ItemsSource="{Binding Path=Items}">
<DataGrid.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel MaxHeight="500" Orientation="Vertical" IsItemsHost="True"/>
</ItemsPanelTemplate>
</DataGrid.ItemsPanel>
<DataGrid.Columns>
<DataGridTextColumn Header="No." Binding="{Binding Item1}" />
<DataGridCheckBoxColumn Header="A" Binding="{Binding Item2}" />
<DataGridCheckBoxColumn Header="B" Binding="{Binding Item3}" />
<DataGridCheckBoxColumn Header="C" Binding="{Binding Item4}" />
<DataGridCheckBoxColumn Header="D" Binding="{Binding Item5}" />
<DataGridTextColumn Binding="{x:Null}" />
</DataGrid.Columns>
</DataGrid>
我已禁用代码中的标题,因为我无法让它在下一列中重复,并添加了一个空列,因为当行在下一列再次开始时我无法获得边距。
当网格不需要水平滚动时,这可以正常工作(除了上述原因)。但是当网格需要水平滚动时,每一列都开始滚动并消失在左边
不滚动时
滚动时