WPF DataGrid row background converter datagrid 行背景随绑定数据变化,转换器

时间:2023-03-09 16:59:12
WPF DataGrid row background converter datagrid 行背景随绑定数据变化,转换器
 <DataGrid Grid.Row="" ItemsSource="{Binding SalesList,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" AutoGenerateColumns="False">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" >
<Setter.Value>
<Binding Path="SalesOrderDetailID" Converter="{StaticResource colorConverter}"/>
</Setter.Value>
</Setter>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="SalesOrderID" Binding="{Binding SalesOrderID }"/>
<DataGridTextColumn Header="SalesOrderDetailID" Binding="{Binding SalesOrderDetailID}"/>
<DataGridTextColumn Header="ModifiedDate" Binding="{Binding ModifiedDate}"/>
</DataGrid.Columns>
</DataGrid>
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Media; namespace WpfApp39.Converter
{
class ColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
int rowsIndex;
if (value != null && int.TryParse(value.ToString(), out rowsIndex))
{
switch (rowsIndex % )
{
case :
return new SolidColorBrush(Colors.Yellow); case :
return new SolidColorBrush(Colors.Purple); case :
return new SolidColorBrush(Colors.Red); case :
return new SolidColorBrush(Colors.Green); case :
return new SolidColorBrush(Colors.Blue); default:
return new SolidColorBrush(Colors.Yellow);
}
} return new SolidColorBrush(Colors.Purple);
} public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

WPF DataGrid row background converter datagrid 行背景随绑定数据变化,转换器

<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" >
<Setter.Value>
<Binding Path="SalesOrderDetailID" Converter="{StaticResource colorConverter}"/>
</Setter.Value>
</Setter>
</Style>
</DataGrid.RowStyle>