Работаю с MvvmLight. Есть дата грид который заполняется при помощи вьюмодели :
Нужно выделить строки, помеченные красным другим цветом. Я пытаюсь это осуществить с помощью LoadingRow которое привязано к команде во вьюмодели. Разметка XAML:
<DataGrid.Columns>
<DataGridTextColumn Header="Type" MinWidth="200" Width="*" Binding="{Binding Type}"/>
<DataGridTextColumn Header="Date" MinWidth="100" Binding="{Binding Date}"/>
<DataGridTextColumn Header="Count" MinWidth="100" Binding="{Binding CountPaper}"/>
<DataGridTextColumn Header="Money" MinWidth="100" Binding="{Binding Money}"/>
<DataGridTextColumn Header="Aq.Price" MinWidth="100" Binding="{Binding AqPr}"/>
</DataGrid.Columns>
Класс вьюмодели
private SolidColorBrush hb = new SolidColorBrush(Colors.Azure);
...
public ICommand RowColor {
get {
return new RelayCommand(() => ....);
}
}
Что писать дальше не знаю, подозреваю что и на этом этапе не все правильно сделал. Подскажите как перекрасить строки, у которых только 1 ячейка не пустая?
Воспользуйтесь конвертером. Для этого нужно создать класс, который преобразует элемент строки в кисть и реализует IValueConverter
public class RowToBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (targetType != typeof(Brush))
{
return null;
}
// RowType - тип элемента строки
var r = value as RowType;
if (r == null || r.Date != null ...)
{
return Brushes.White;
}
return Brushes.Red;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
В разметке DataGrid добавляем:
<DataGrid.Resources>
<local:RowToBrushConverter x:Key="RowToBrushConverter"/>
</DataGrid.Resources>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="{Binding Converter={StaticResource RowToBrushConverter}}"/>
</Style>
</DataGrid.RowStyle>
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости