Работаю с 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>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как записать значение переменной счетчика в базу данных sqlite в unity? фрагмент кода:
Есть такая проблема: когда делаю построчный парсингtxt файла при помощи рег
Как можно передать количество параметров, которое может каждый раз меняться в sql запрос? Мне нужно следующий запрос оформить для всевозможного...
Очень нужно разобраться с тем как работает ComboBox в таблице DataGrid на WPFМне важно чтобы было грамотно разъяснено и правильно реализовано