Я могу изменить фон Datacell через следующий код C# -Изменение фона DataGrid ячейки
private void Retrieve_rows(object item)
{
DataRow row = mygrid.GetContainerFromItem(item) as DataGrid.DataRow;
if (row != null)
{
SolidColorBrush redColor = new SolidColorBrush (Colors.Red);
foreach (DataGrid.DataCell cell in row.Cells)
{
var dc = ((System.Windows.FrameworkElement)(((DataGrid.Cell)(cell)).ParentRow)).DataContext;
// get my custom object and change color if IsBlank value is set to true
MyRowObject rowObject = dc as MyRowObject;
for (int counter = 0; counter < rowObject.values.Count; counter++)
{
if (rowObject.values[counter].IsBlank == true)
row.Cells[counter].Background = redColor;
}
}
return;
}
}
}
Но с этим кодом, производительность приложений деградирует в значительной степени. Есть ли способ конвертировать выше код в триггеры XAML/или любой другой способ повысить производительность сетки.
Привет, Себи, спасибо за ответ. но я уже пробовал использовать код xaml, который не работает.<Условие Binding = "{Связывание RelativeSource = {RelativeSource Self}, Path = Имя поля}" Значение = "значение" /><Условие Binding = "{Binding IsBlank}" Value = "true"/> <Свойство Setter = "Background" Value = "Red" /> MultiDataTrigger> –
user1134489
, пожалуйста, будьте более конкретными - что вы собираетесь делать с этим мультитатриграгером? кажется немного от темы ... –