我正在尝试根据列和单元格的值来编辑数据网格的每个特定单元格。而且我找不到以编程方式执行此操作的方法,在xaml中有一些示例。另外,我想要的样式取决于每个单元格的值。
我有
driver.quit()
这些列绑定到一个类,我可以用这种方式填充数据网格,但是我找不到一种样式化每个单元格的方法。
答案 0 :(得分:0)
好吧,要找到解决方案并不容易,因为一件简单的事情绝对是一种复杂的解决方案。
因此,对于要设置“样式”的列,我要做的是通过创建像这样的celltype类型的样式。
var cellStyle = new Style()
{
TargetType = typeof(DataGridCell)
};
这里的技巧是为所需的属性添加一个setter,并以绑定作为值,并且此绑定具有这样的转换器。在这种情况下,我想使用DataGridCell.ForegroundProperty更改字体颜色。
cellStyle.Setters.Add(new Setter(DataGridCell.ForegroundProperty, new Binding() { Converter = new CodeStyleConverter() }));
dataGrid.Columns[dataGrid.Columns.Count - 1].CellStyle = cellStyle;
转换器是一个IValueConverter对象,该IValueConverter接收值并返回此类对象的属性。
public class CodeStyleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
DataGridRow row;
if (value is DataGridRow)
{
row = value as DataGridRow;
if (row.Code == "I")
{
return Brushes.Red;
}
else if (row.Code == "E")
{
return Brushes.Blue;
}
}
return Brushes.Black;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}