I have a log window wit开发者_StackOverflow社区h a datagrid, each entry write to new row in the datagrid.
I want to set the row color accordingly to the severity of the log message (e.g. fatal exception = Red , Information = Green).
How do i can do it with binding or dynamic resource?
Thanks in advance!
Assuming that this is not for Silverlight, you can use DataTriggers.
Assume Severity is exposed as a property from your items...
   <Style TargetType="{x:Type toolkit:DataGridRow}">
         <Style.Triggers>
             <DataTrigger Binding="{Binding Severity}" Value="High">
                  <Setter Property="Background" Value="Red"/>
             </DataTrigger> 
             <DataTrigger Binding="{Binding Severity}" Value="Medium">
                  <Setter Property="Background" Value="Yellow"/>
             </DataTrigger> 
             <DataTrigger Binding="{Binding Severity}" Value="Low">
                  <Setter Property="Background" Value="Green"/>
             </DataTrigger> 
         </Style.Triggers>
   </Style> 
For silverlight you should use converters...
   <Style TargetType="{x:Type toolkit:DataGridRow}">
        <Setter Property="Background"
                Value="{Binding Path=Severity,
                                Converter={StaticResource StatusToColorConveter}}"/>
   </Style>
In StatusToColorConveter.Convert() method ...
  switch(value.toString())
  {
      case "High": return Colors.Red;
      case "Medium": return Colors.Yellow;
      case "Low": return Colors.Green;
  }
Let me know if this helps.
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
 加载中,请稍侯......
      
精彩评论