2011-09-08 4 views
2

DataGrid가있는 로그 창과 각 항목이 DataGrid의 새 행에 기록됩니다.다른 색상을 사용하여 DataGrid의 각 행을 설정하는 방법

로그 메시지의 심각도에 따라 행 색상을 설정하고 싶습니다 (예 : 치명적 예외 = 빨간색, 정보 = 녹색).

바인딩 또는 동적 리소스로 어떻게 할 수 있습니까?

미리 감사드립니다.

답변

4

Silverlight 용이 아니라고 가정하면 DataTriggers를 사용할 수 있습니다.

는 컨버터를 사용해야 실버를 들어

<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> 

... StatusToColorConveter.Convert에서

<Style TargetType="{x:Type toolkit:DataGridRow}"> 
     <Setter Property="Background" 
       Value="{Binding Path=Severity, 
           Converter={StaticResource StatusToColorConveter}}"/> 
    </Style> 

() 메소드 ... Severity이 항목에서 속성으로 노출되는 가정 ...

이 정보가 도움이되는지 알려주세요.

+0

감사합니다. work great – Maya

+0

''DataTriggers "'를 사용해야 할 것입니다. 이것은 당신이 직접 언급 한 ValueConverters를 포함하여 다양한 다른 방법이 있기 때문에 정확하지 않습니다. 솔루션 세트가 실제로 한정되어 있는지 (이 경우에는 ("" "") 하나의 요소 만 포함 할 것임을 확신 할 수 없다면) 강력한 명령문에서 벗어나는 것이 좋습니다. –

+0

@ H.B., okies. 편집 됨. –

관련 문제