Я пытаюсь добавить проверку на datagrid в XAML.Настройка XAML Datagrid Цвет текста в строке
В настоящее время я создал метод, который проверяет 3 текстовых поля для допустимого ввода и если false устанавливает значение в коллекции, к которой привязан datagrid, либо к true, либо false. Эта часть работает нормально.
Проблема, с которой я сталкиваюсь, заключается в том, что это действительно работает.
Я создал конвертер:
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool isRowValid = ((bool)value);
ConsoleColor validColour = ConsoleColor.Green;
ConsoleColor invalidColour = ConsoleColor.Red;
if (isRowValid)
{
return validColour;
}
else
{
return invalidColour;
}
}
Итак, когда строка недействительна она будет отображаться красным цветом, когда действует она будет отображаться зеленым цветом.
Метод проверки каждой строки вызывается, когда строка теряет фокус, и по умолчанию для каждой строки установлено недопустимое значение.
Я пытаюсь установить фон для каждой строки, выполнив
<DataGrid.RowBackground>
<SolidColorBrush Color="{Binding Path=IsRowValid, Converter={StaticResource RowValidConverter}}" />
</DataGrid.RowBackground>
, но в идеале, я хотел бы, чтобы только настроить цвет текста, а не фон.
Любые предложения о том, как осуществить это было бы весьма признателен,
Спасибо.
Спасибо за быстрый ответ. Будет ли это обновление во время выполнения, когда пользователи будут редактировать данные? – Purplegoldfish
@Purplegoldfish: Да, 'Validation.HasError' является прикрепленным свойством, поэтому Trigger всегда будет получать уведомление каждый раз, когда изменяется его значение. Если вы хотите связать себя с вашим свойством 'IsRowValid', то это либо должно быть свойство Dependency, либо вам нужно реализовать INotifyPropertyChanged. –
Спасибо, мне было интересно, почему он не обновлялся, а затем заметил, что я сделал опечатку! отлично работает сейчас. – Purplegoldfish