首页 > 代码库 > WPF 根据绑定值设置DataGrid行背景色
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=http://www.mamicode.com/"{Binding Path=Surplus, Converter={StaticResource bgconverter}}"/> 5 </Style>6 </DataGrid.Resources>
setter的value绑定值就是需要转换类型的绑定值。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。