有時為了顯示效果,需要讓某一列單元格根據不同的資料條件來顯示不同的顔色。
這裡提供一種方法——借助轉化器。
1、前台GridView綁定資料源,每一列采用單獨定義綁定的方式。
像這樣:
2、右擊程式集,建立檔案夾存放轉化器類(Conver)
3、右擊建立的檔案夾,添加類(SexToColor)
類初始狀态如下:
4、編寫類轉化器,示例代碼如下:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null)
{
var temp = (value.ToString());
if (temp.Contains("男"))
{
return "LightSkyBlue";//性别為男,藍色
}
else
{
return "Yellow";//性别為女,黃色
}
}
else
{
return "White";//預設,白色
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
像這樣:如果有錯,注意增加 using
5、重新生成解決方案
6、前台增加引用、定義資源
增加引用:
定義資源:
7、在所要更改顔色的列,增加如下格式的代碼
<telerik:GridViewDataColumn DataMemberBinding="{Binding Sex}"
Header="姓别">
<telerik:GridViewDataColumn.CellStyle>
<Style TargetType="{x:Type telerik:GridViewCell}">
<Setter Property="HorizontalContentAlignment"
Value="Center" />
<Setter Property="Background"
Value="{Binding Sex,Converter={StaticResource SexToColor}}" />
</Style>
</telerik:GridViewDataColumn.CellStyle>
</telerik:GridViewDataColumn>
8、編譯運作
效果如下: