I want to set the backgroun color for a GridViewColumn that is databound inside of a listview in WPF. I'm not sure how to ask this question being fairly new to WPF, otherwise I wouldn't have bothered all of you.
I want to change the background color of the whole row, based on a bool flag in my databound object.
In this case, I have, well, a "CaseDetail" object, that when there are internal notes "IsInternalNote" I want the color of the row to change.
How can I pull this off in WPF?
What I have now, ( very simple ), which does NOT change the 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> 
                I ran into a few troubles trying to do this, ended up like so
<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>   There may be alternatives, but once I had it working, I stopped looking :)
I haven't tested this yet so it might need some tweaks but you're going to want to trigger off the value to set your background color.
<DataTemplate.Triggers>     <Trigger Property="IsInternalNote" Value="True">         <Setter Property="Background" Value="Red" />     </Trigger> </DataTemplate.Triggers> 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With