简体   繁体   English

一组Listview(WPF / C#)中每个元素的Gridview列

[英]Gridview Column for each element in a Group of Listview (WPF/C#)

I have an application that show the data grouped by type, each type has your own group with expander. 我有一个显示按类型分组的数据的应用程序,每种类型都有自己的带有扩展器的组。 I want to show for each group a gridviewcolumn like the red selection of Image 1 and put on the green space. 我想为每个组显示一个像图像1的红色选择一样的gridview列,并放在绿色的空间上。 What is the best way to do this? 做这个的最好方式是什么?

在此处输入图片说明

EDIT 1 编辑1

Following my actual XAML file section with listview: 在我的实际XAML文件部分带有listview之后:

ListView.xaml ListView.xaml

<ListView Name="lstResults" Grid.Row="1" IsEnabled="True" Grid.RowSpan="4" DataContext="All" Grid.ColumnSpan="5" Margin="5,5">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Linha" Width="Auto" DisplayMemberBinding="{Binding LineNumber}" />
            <GridViewColumn Header="Fonte" Width="Auto" DisplayMemberBinding="{Binding Source}" />
            <GridViewColumn Header="Data" Width="Auto" DisplayMemberBinding="{Binding Time}" />
            <GridViewColumn Header="Log" Width="Auto" DisplayMemberBinding="{Binding LineLog}" />
        </GridView>
    </ListView.View>

    <ListView.GroupStyle>
        <GroupStyle>
            <GroupStyle.ContainerStyle>
                <Style TargetType="{x:Type GroupItem}">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate>
                                <Expander IsExpanded="True">
                                    <Expander.Header>
                                        <StackPanel Orientation="Horizontal">
                                            <TextBlock Text="{Binding Items[0].Pattern, StringFormat={} Teste: {0}}" FontWeight="Bold" Foreground="Gray" FontSize="22" VerticalAlignment="Bottom" />
                                            <Border CornerRadius="10" Padding="1,1,1,1" BorderThickness="1" BorderBrush="Black" Background="Red" Margin="1,0,0,0" >
                                                <TextBlock Text="{Binding Items.Count,StringFormat={} Items: {0}}" Padding="0" VerticalAlignment="Center"  Margin="5,1,5,1" FontSize="15" FontWeight="Bold" Foreground="Black"/>                                                        
                                            </Border>
                                        </StackPanel>
                                    </Expander.Header>
                                    <ItemsPresenter />
                                </Expander>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </GroupStyle.ContainerStyle>
        </GroupStyle>
    </ListView.GroupStyle>
</ListView>

you can add a ListView inside the groupitem. 您可以在groupitem中添加一个ListView。 Try below code. 尝试下面的代码。

<ListView.GroupStyle>
    <GroupStyle>
        <GroupStyle.ContainerStyle>
            <Style TargetType="{x:Type GroupItem}">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <Expander IsExpanded="True">
                                <Expander.Header>
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Text="{Binding Items[0].Pattern, StringFormat={} Teste: {0}}" FontWeight="Bold" Foreground="Gray" FontSize="22" VerticalAlignment="Bottom" />
                                        <Border CornerRadius="10" Padding="1,1,1,1" BorderThickness="1" BorderBrush="Black" Background="Red" Margin="1,0,0,0" >
                                            <TextBlock Text="{Binding Items.Count,StringFormat={} Items: {0}}" Padding="0" VerticalAlignment="Center"  Margin="5,1,5,1" FontSize="15" FontWeight="Bold" Foreground="Black"/>                                                        
                                        </Border>
                                    </StackPanel>
                                </Expander.Header>
                                <ListView ItemsSource="{TemplateBinding Items}">
                                         <ListView.View>
                                             <GridView>
                                                 <GridViewColumn Header="Linha" Width="Auto" DisplayMemberBinding="{Binding LineNumber}" />
                                                 <GridViewColumn Header="Fonte" Width="Auto" DisplayMemberBinding="{Binding Source}" />
                                                 <GridViewColumn Header="Data" Width="Auto" DisplayMemberBinding="{Binding Time}" />
                                                 <GridViewColumn Header="Log" Width="Auto" DisplayMemberBinding="{Binding LineLog}" />
                                             </GridView>
                                          </ListView.View>
                                </ListView>
                            </Expander>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </GroupStyle.ContainerStyle>
    </GroupStyle>
</ListView.GroupStyle>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM