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

时间:2015-10-27 11:00:51

标签: c# wpf listview

我无法在实现GridViewColumn的ListView中显示应具有不同背景颜色的不同元素。

我看过这篇文章似乎非常有用:Listbox item WPF, different background color for different items

但是我真的不知道如何在我的代码中实现它,因为绑定是在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>

你有解决方案吗?

1 个答案:

答案 0 :(得分:1)

如果要更改行的背景,则可以实现定义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