Quiero para establecer el fondo de color para un GridViewColumn que está enlazado a datos dentro de un listview en WPF. No estoy seguro de cómo hacer esta pregunta es bastante nuevo para WPF, de lo contrario no me habría molestado a todos ustedes.

Quiero cambiar el color de fondo de la fila entera, con base en un bool bandera en mi objeto enlazado a datos.

En este caso, que tengo, bien, un «CaseDetail» objeto, que cuando hay notas internas «IsInternalNote» quiero que el color de la fila para cambiar.

¿Cómo puedo sacar esto en WPF?

Lo que tengo ahora, ( muy simple ), que NO cambia el color.

<ListView ItemsSource="{Binding}" IsSynchronizedWithCurrentItem="True"  >
            <ListView.View>
                <GridView>
                    <GridViewColumn DisplayMemberBinding="{Binding Date, StringFormat=MMM dd\, yyyy h:mm tt}" Header="Date" Width="Auto" />
                    <GridViewColumn DisplayMemberBinding="{Binding SubmittedBy}" Header="Submitted By" Width="Auto" />
                    <GridViewColumn Width="Auto" Header="Description" x:Name="colDesc">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>                              
                                <ScrollViewer MaxHeight="80" Width="300">
                                    <StackPanel Orientation="Vertical">
                                        <TextBlock Text="{Binding Description}"  TextWrapping="Wrap"   />
                                        <TextBlock Text="{Binding File.FileName}" TextWrapping="Wrap"  />
                                    </StackPanel>
                                </ScrollViewer>                             
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>                    
                </GridView>
            </ListView.View>
        </ListView>
InformationsquelleAutor Russ | 2008-12-05

2 Comentarios

  1. 32

    Me encontré con un par de problemas tratando de hacer esto, terminó como

    <ListBox ...>
      <ListBox.ItemTemplate>
        <DataTemplate>
          <Border x:Name="BGBorder">
             <!-- --> 
          </Border>
          <DataTemplate.Triggers>
            <DataTrigger 
              Binding="{Binding Path=DataContext.IsAborted, RelativeSource={RelativeSource TemplatedParent}}" 
              Value="True">
              <Setter Property="Background" TargetName="BGBorder" Value="Red">
              </Setter>
            </DataTrigger>
          </DataTemplate.Triggers>
        </DataTemplate>
      </ListBox.ItemTemplate>
    </ListBox>

    Puede haber alternativas, pero una vez que me había trabajo, he dejado de buscar 🙂

    • Esto funcionó muy bien para mí!!
    • +1 para todo XAML solución
  2. 2

    Yo no he probado este, sin embargo, por lo que podría necesitar algunos ajustes, pero usted va a querer para desencadenar el valor para establecer el color de fondo.

    <DataTemplate.Triggers>
        <Trigger Property="IsInternalNote" Value="True">
            <Setter Property="Background" Value="Red" />
        </Trigger>
    </DataTemplate.Triggers>

Dejar respuesta

Please enter your comment!
Please enter your name here