2
我有一個帶有數據網格的日誌窗口,每個條目寫入數據網格中的新行。如何使用不同的顏色設置datagrid中的每一行
我想根據日誌消息的嚴重程度設置行顏色(例如,致命異常=紅色,信息=綠色)。
我該如何處理綁定或動態資源?
在此先感謝!
我有一個帶有數據網格的日誌窗口,每個條目寫入數據網格中的新行。如何使用不同的顏色設置datagrid中的每一行
我想根據日誌消息的嚴重程度設置行顏色(例如,致命異常=紅色,信息=綠色)。
我該如何處理綁定或動態資源?
在此先感謝!
假設這不適用於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;
}
讓我知道這是否有幫助。
謝謝!很好的工作 – Maya
'''''''''''''''''''''''''''''''''''''''''''''''''''''''您將不得不使用數據觸發器'',這是不正確的,除非您確定解決方案集合確實有界(在這種情況下('「必須僅包含一個元素」)),否則我會建議您遠離這種強烈的陳述。 –
@ H.B。,okies。編輯。 –