.net - style - wpf tutorial español
Cómo establecer el color de fondo en función de la propiedad bool en WPF (2)
Quiero establecer el color de fondo para una GridViewColumn que está unida a datos dentro de una vista de lista en WPF. No estoy seguro de cómo hacer que esta pregunta sea bastante nueva para WPF; de lo contrario, no los habría molestado a todos ustedes.
Quiero cambiar el color de fondo de toda la fila, basado en un indicador bool en mi objeto de datos.
En este caso, tengo, bueno, un objeto "CaseDetail", que cuando hay notas internas "IsInternalNote" quiero que cambie el color de la fila.
¿Cómo puedo lograr 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>
Me encontré con algunos problemas tratando de hacer esto, terminé así
<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 lo tuve funcionando, dejé de mirar :)
Todavía no lo he probado, así que podría necesitar algunos ajustes, pero querrá activar el valor para establecer el color de fondo.
<DataTemplate.Triggers>
<Trigger Property="IsInternalNote" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
</DataTemplate.Triggers>