dev Gridcontrol根据其cell里面的值显示不同颜色


要改变cell值得颜色 需要用到cellTemplate和convert

        <DataTemplate x:Key="PercentageCellColorTemplate">
            <dxe:TextEdit Name="PART_Editor" Mask="p2" MaskType="Numeric" MaskUseAsDisplayFormat="True" FontWeight="Bold" Foreground="{Binding Value, Converter=  {StaticResource       colorConvert}}">
            </dxe:TextEdit>
        </DataTemplate>

Foreground="{Binding Value} 这个value就是这个cell里面的值,在convert中可以根据值得情况来返回不同的颜色值

convert类定义形式如下:

    public class ColorConvert : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            string returnValue = "Black"; //默认为black
            if (value != null)
            {
                string sValue = value.ToString();
                if (sValue != "")
                {
                    double dValue;
                    if (double.TryParse(value.ToString(), out dValue))
                    {
                        if (dValue > 0)
                            returnValue = "Red";
                        else if (dValue < 0)
                        {
                            returnValue = "Green";
                        }
                        else
                        {
                            returnValue = "Black";
                        }
                    }
                }
            }
            return returnValue;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return null;
        }
    }

            设置改列的cellTemplate属性

                <dxg:GridColumn Header="colorTest" FieldName="test" CellTemplate="{StaticResource PercentageCellColorTemplate}">
                </dxg:GridColumn>

通过上面过程Foreground属性会根据当前cell的值 来得到不同的属性值 从而显示不同的颜色。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM