我在生成列表框时遇到了一些问题。
我有很多行的数据集,我需要将一个大表拆分为两个或更多依赖于一些RowsLimit。一个包含100行的表将成为两个包含50行的表,依此类推。这些块将彼此相邻显示。
为此,我使用列表框进行分组(在代码后面我设置属性进行过滤),它运行良好。但是每一行都有不同的高度,我需要组中的最后一行填充每组中的所有剩余空间。
我试过使用停靠面板,但它什么都没改变。
此外,我需要在运行时创建并设置GroupStyle.HeaderTemplate,因为我的数据集中有列数,宽度,bordercolor和其他属性。如何用新的?
替换DataTemplate“HeaderGroupStyle”<ListBox Name="lbTable" >
<ListBox.Resources>
<DataTemplate x:Key="HeaderGroupStyle">
<StackPanel Orientation="Horizontal">
<TextBox Width="100" Text="Header 1" />
<TextBox Width="100" Text="Header 2" />
<TextBox Width="100" Text="Header 3" />
<TextBox Width="100" Text="Header 4" />
</StackPanel>
</DataTemplate>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<DockPanel>
<ContentPresenter DockPanel.Dock="Top"/>
<ItemsPresenter Margin="0,0,0,0" DockPanel.Dock="Top"/>
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.Resources>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Padding" Value="0"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" DockPanel.Dock="Top">
<TextBox Width="100" Text="{Binding Path=Cell[0].Value}" />
<TextBox Width="100" Text="{Binding Path=Cell[1].Value}" />
<TextBox Width="100" Text="{Binding Path=Cell[2].Value}" />
<TextBox Width="100" Text="{Binding Path=Cell[3].Value}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.GroupStyle>
<GroupStyle HeaderTemplate="{StaticResource HeaderGroupStyle}">
<GroupStyle.Panel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</ListBox.GroupStyle>
</ListBox>