我有一个带有数据网格的日志窗口,每个条目都会写入数据网格中的新行。
我想根据日志消息的严重性设置行颜色(例如致命异常=红色,信息=绿色)。
我如何使用绑定(bind)或动态资源来做到这一点?
提前致谢!
最佳答案
假设这不适用于 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;
}
请告诉我这是否有帮助。
关于wpf - 如何将数据网格中的每一行设置为不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7345510/