ListView WPF,GridViewColumn中不同项的不同背景颜色

本文关键字:背景 颜色 WPF GridViewColumn ListView | 更新日期: 2023-09-27 18:19:36

我在实现GridViewColumn的ListView中显示应该具有不同背景颜色的不同元素时遇到问题。

我看到了这篇文章,它看起来真的很有用:列表框项目WPF,不同项目的不同背景颜色

但我真的不知道如何在我的代码中实现这一点,因为绑定是在GridView:中进行的

<ListView x:Name="ListBoxSelectedPlaylist" ItemsSource="{Binding Path=SelectedPlaylist.PlayableElements}" Grid.Row="1">
    <ListView.Resources>
        <ContextMenu x:Key="ContextMenu">
            <MenuItem Header="Delete item(s)" Click="ListBoxSelectedPlaylist_MenuItemDeleteItems_Click" />
        </ContextMenu>
        <Style TargetType="{x:Type ListViewItem}">
            <Setter Property="ContextMenu" Value="{StaticResource ContextMenu}"/>
        </Style>
    </ListView.Resources>
    <ListView.View>
        <GridView>
            <GridViewColumn Header="State" DisplayMemberBinding="{Binding ElementPlayingState}" />
            <GridViewColumn Header="Extension" DisplayMemberBinding="{Binding Extension}" />
            <GridViewColumn Header="Filename" DisplayMemberBinding="{Binding Filename}" />
            <GridViewColumn Header="Src" DisplayMemberBinding="{Binding Src}" />
        </GridView>
    </ListView.View>
</ListView>

你有解决方案吗?

ListView WPF,GridViewColumn中不同项的不同背景颜色

如果您想更改行的背景,那么您可以实现一种定义DataTrigger的样式。例如:

<Style TargetType="{x:Type ListViewItem}">
      <Style.Triggers>
            <DataTrigger
                  Binding="{Binding YourProperty}"
                  Value="SomeValue">
                  <Setter Property="BorderBrush" Value="Red"/>
                  <Setter Property="Background" Value="AliceBlue"/>
             </DataTrigger>
      </Style.Triggers>
</Style>

如果更改背景的逻辑取决于各种绑定属性,则建议您使用IMultiValueConverter