WPF 根據綁定值設置DataGrid行背景色


實現這個功能可以使用類型轉換器

1建立一個類BGConverter.cs該類需要繼承IValueConverter接口,並實現接口的Convert與ConvertBack方法。注意在Class上需要加上一句話,

[ValueConversion(typeof(int),typeof(Brushes))]

前一個type是源類型,后一個是目標類型

[ValueConversion(typeof(int),typeof(Brushes))]
    class BGConverter:IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            int surplus=(int)value;
            if(surplus<10)
            {
                return Brushes.Red;
            }else if(surplus>100)
            {
                return Brushes.Yellow;
            }else
            {
                return Brushes.White;
            }
        }

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

Convert方法中對value值進行判斷,小於10的返回紅色,大於100返回黃色,其他為白色。ConvertBack方法我用不到,返回空值。

在xaml文件的window里加入一句話xmlns:local="clr-namespace:當前命名空間"

 

在DataGrid中加入DataGrid.Resource

1 <DataGrid.Resources>
2                 <local:BGConverter x:Key="bgconverter"/>
3                 <Style TargetType="DataGridRow">
4                     <Setter Property="Background" Value="{Binding Path=Surplus, Converter={StaticResource bgconverter}}"/>         
5                 </Style>
6 </DataGrid.Resources>

setter的value綁定值就是需要轉換類型的綁定值。

 

 

 






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM