如何将列标题添加到列表视图

时间:2018-11-12 14:40:54

标签: wpf xaml listview

我有一个列表视图,该列表视图的样式和样式是我想要的。现在,我只是尝试向其添加列标题,但这似乎比我想象的要难。是否有必要在此xaml模型中添加某种数据网格以获取列标题,还是可以添加一些非常基本的东西?

<ListView ItemsSource="{Binding PlayerOC, Mode=TwoWay}" AlternationCount="2">
    <ListView.ItemContainerStyle>  
        <Style TargetType="ListViewItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ListBoxItem">
                        <Border Name="_Border"
                                Padding="0"
                                SnapsToDevicePixels="true">
                            <ContentPresenter />
                        </Border>
                        <ControlTemplate.Triggers>                                            
                            <Trigger Property="ItemsControl.AlternationIndex" Value="0">
                                <Setter Property="Background" Value="#19f39611"></Setter>
                            </Trigger>
                            <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                                <Setter Property="Background" Value="#19000000"></Setter>
                            </Trigger>

                            <Trigger Property="IsSelected" Value="true">
                                <Setter TargetName="_Border" Property="Background" Value="White"/>
                                <Setter TargetName="_Border" Property="Padding" Value="1"/>
                                <Setter Property="Foreground" Value="White"/>
                                <Setter Property="FontWeight" Value="Bold"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>                        
    </ListView.ItemContainerStyle>
    <ListView.ItemTemplate >
        <DataTemplate>
            <StackPanel Orientation="Horizontal" Background="{Binding RowColor}"  >
                <TextBlock Text="{Binding PlayerNumber}" Padding="5" Width="50" />
                <TextBlock Text="{Binding PlayerName}"  Padding="5"  Width="200" />
            </StackPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

1 个答案:

答案 0 :(得分:1)

这是将列添加到ListView的通常方法:

<ListView ItemsSource="{Binding Data}" BorderBrush="Gray" BorderThickness="1" Margin="5">
    <ListView.View>
        <GridView>
            <GridViewColumn DisplayMemberBinding="{Binding Id}" Header="Id"/>
            <GridViewColumn DisplayMemberBinding="{Binding Name}" Header="Name"/>
        </GridView>
    </ListView.View>
</ListView>