1. 程式人生 > >VS程式設計,WPF中telerik:RadGridView 單元格資料根據不同條件顯示不同背景顏色的一種方法

VS程式設計,WPF中telerik:RadGridView 單元格資料根據不同條件顯示不同背景顏色的一種方法

有時為了顯示效果,需要讓某一列單元格根據不同的資料條件來顯示不同的顏色。

這裡提供一種方法——藉助轉化器。

 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、編譯執行

效果如下: