¿Cómo recorre WPF DataGrid todas sus celdas y cambia el color de fondo si contiene una palabra?
Si desea procesar el valor de la celda, se recomienda utilizar IConverter.
Por ejemplo:
Código de interfaz de usuario:
ltDataGrid Name = " DG " autogenerar columnas = " False " RowHeaderWidth = " 0 " unidad de selección = " Celda " gt;
lt cuadrícula de datos. Recursos gt
ltlocal:color convert x:Key = "color convert"/ gt;
lt/DataGrid. Recursos gt
lt data grid. Columna gt
ltDataGridTextColumn Binding = " { Binding Path = age } "/ gt;
ltDataGridTemplateColumn gt
ltDataGridTemplateColumn. CellTemplate gt
ltData Templategt
ltText block Texto = " { Binding Path = nombre } " Primer plano = " Negro " Fondo = " { Binding Converter = { conversión de color de recurso estático } } " / gt;
lt/plantilla de datos gt;
lt/DataGridTemplateColumn. CellTemplate gt
lt/datagrid plantilla columna gt;
lt/DataGrid. Columna gt
lt/DataGrid gt;
Código de fondo:
Clase parcial pública BaiduKnows: Ventana
{
Public BaiduKnows()
{
inicializar componente();
Lista ltPeople gtpeoplelist = nueva lista ltPeople gt();
Lista de personajes. Add(new person(){ edad = 10, nombre = "Linda" });
Lista de personajes. Agregar(nueva persona(){ edad = 11, nombre = " Tom " });
Lista de personajes. Add(nueva persona(){ edad = 12, nombre = " Peter " });
Lista de personajes. Add(nueva persona(){ edad = 13, nombre = "Mary" });
dg.
ItemsSource = lista de personas
}
}
Personas de clase
{
public int age { get settings; }
Nombre de cadena pública { get settings }
}
Código del convertidor: colorConvert.cs
Espacio de nombres XXX
{
//Definir conversor de valores
[ValueConversion(typeof(string), typeof(string))]
Clase pública ColorConvert: IValueConverter
{
Conversión de objeto público (valor de objeto, tipo targetType, parámetro de objeto, cultura CultureInfo)
{
Personas strValue = valor como una persona;
if (strValue!= null amp ampstrValue.name == "peter ")
{
Devuelve "rojo";
}
Devuelve "blanco";
}
Objeto público ConvertBack(valor del objeto, tipo targetType, parámetros del objeto, cultura CultureInfo)
{
Devolver "";
}
}
}