如何在列表框组中设置相同的高度?

时间:2017-04-06 14:20:49

标签: c# wpf listbox

我在生成列表框时遇到了一些问题。
我有很多行的数据集,我需要将一个大表拆分为两个或更多依赖于一些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>

这就是我现在所拥有的 enter image description here 这就是我想要的 enter image description here

0 个答案:

没有答案