2015-10-27 3 views
0

У меня возникли проблемы с отображением различных элементов, которые должны иметь разный цвет фона в ListView, которые реализуют GridViewColumn.ListView WPF, различный цвет фона для разных элементов в GridViewColumn

Я видел этот пост, который кажется очень полезным: 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

Если вы хотите изменить фон строки, вы можете реализовать стиль, который определяет 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.

+0

Это работает, спасибо большое :) – Devz

Смежные вопросы