我有一个带有datagrid的日志窗口,每个条目都写入datagrid中的新行。
我想根据日志消息的严重程度设置行颜色(例如,致命异常=红色,信息=绿色)。
我如何使用绑定或动态资源来实现?
提前致谢!
答案 0 :(得分:4)
假设这不适用于Silverlight,您可以使用DataTriggers。
假设Severity
作为您商品的属性公开...
<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>
对于silverlight,你应该使用转换器...
<Style TargetType="{x:Type toolkit:DataGridRow}">
<Setter Property="Background"
Value="{Binding Path=Severity,
Converter={StaticResource StatusToColorConveter}}"/>
</Style>
在StatusToColorConveter.Convert()方法中......
switch(value.toString())
{
case "High": return Colors.Red;
case "Medium": return Colors.Yellow;
case "Low": return Colors.Green;
}
如果有帮助,请告诉我。