使用Converter for DataGrid中的单元格与AutoGenerateColumns
问题描述:
有没有方法将转换器附加到GridView中的每个单元格以允许根据文本内容更改颜色?使用Converter for DataGrid中的单元格与AutoGenerateColumns
Datagrid带颜色的样本。它应该是什么样子。
XAML
[![<DataGrid x:Name="dgvData" AutoGenerateColumns="True" />][1]][1]
代码隐藏
Dim tableView As DataView = New DataView(DataTable)
Me.dgvData.ItemsSource = tableView
我所做的迄今使用的样式和连接的转换器。 但是在风格上,我无法访问数据。在数据中,如果它是自动生成的,我没有包含单元格背景颜色。
答
您可以通过绑定到Content.Text属性来做到这一点。
样品转换器:
public class MyConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var x = value;
return x.ToString() == "1" ? Brushes.Red : Brushes.Green;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
样品XAML:
<Window.Resources>
<local:MyConverter x:Key="Conv"/>
</Window.Resources>
<StackPanel>
<DataGrid x:Name="dgvData" AutoGenerateColumns="True">
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Background" Value="{Binding Content.Text,RelativeSource={RelativeSource Self}, Converter={StaticResource Conv}, Mode=OneWay}"/>
</Style>
</DataGrid.CellStyle>
</DataGrid>
</StackPanel>
</Window>
检查[此Q + A](https://*.com/questions/45701332)。创建一个转换器,创建一个DataGridCell样式,使用转换器根据值更改颜色,将该样式分配给DataGrid.CellStyle属性 – ASh