Поделиться через


DataGrid.RowValidationRules Свойство

Определение

Получает правила, используемые для проверки данных в каждой из строк.

public:
 property System::Collections::ObjectModel::ObservableCollection<System::Windows::Controls::ValidationRule ^> ^ RowValidationRules { System::Collections::ObjectModel::ObservableCollection<System::Windows::Controls::ValidationRule ^> ^ get(); };
public System.Collections.ObjectModel.ObservableCollection<System.Windows.Controls.ValidationRule> RowValidationRules { get; }
member this.RowValidationRules : System.Collections.ObjectModel.ObservableCollection<System.Windows.Controls.ValidationRule>
Public ReadOnly Property RowValidationRules As ObservableCollection(Of ValidationRule)

Значение свойства

Правила, которые используются для проверки данных в каждой строке.

Примеры

В следующем примере демонстрируется объект , ValidationRule который проверяет, является ли StartDate значение свойства объекта более ранним Course , чем EndDate его значение свойства. Этот пример кода является частью более крупного примера, приведенного в разделе Практическое руководство. Реализация проверки с помощью элемента управления DataGrid .

public class CourseValidationRule : ValidationRule
{
    public override ValidationResult Validate(object value,
        System.Globalization.CultureInfo cultureInfo)
    {
        Course course = (value as BindingGroup).Items[0] as Course;
        if (course.StartDate > course.EndDate)
        {
            return new ValidationResult(false,
                "Start Date must be earlier than End Date.");
        }
        else
        {
            return ValidationResult.ValidResult;
        }
    }
}
Public Class CourseValidationRule
    Inherits ValidationRule

    Public Overrides Function Validate(ByVal value As Object, _
        ByVal cultureInfo As System.Globalization.CultureInfo) _
        As ValidationResult

        Dim course As Course = _
            CType(CType(value, BindingGroup).Items(0), Course)

        If course.StartDate > course.EndDate Then
            Return New ValidationResult(False, _
                "Start Date must be earlier than End Date.")
        Else
            Return ValidationResult.ValidResult
        End If

    End Function

End Class

В следующем примере показано, как можно присвоить свойству RowValidationRules значение в XAML. Свойству ValidationStep задается значение UpdatedValue таким образом, чтобы проверка выполнялась только после обновления привязанного объекта данных. Когда пользователь задает дату окончания, которая идет раньше даты начала, в заголовке строки появится красный восклицательный знак (!).

<DataGrid.RowValidationRules>
  <local:CourseValidationRule ValidationStep="UpdatedValue"/>
</DataGrid.RowValidationRules>

Комментарии

Элемент управления DataGrid позволяет выполнять проверку на уровне ячейки и на уровне строки. С помощью проверки на уровне ячейки проверяются отдельные свойства привязанного объекта данных при обновлении значения пользователем. С помощью проверки на уровне строк проверяются все объекты данных, когда пользователь вносит изменения в строке. Чтобы создать пользовательское правило проверки, создайте класс, производный ValidationRule от класса , и реализуйте Validate метод . Добавьте пользовательское правило проверки в коллекцию RowValidationRules .

Если используется ItemBindingGroup свойство , RowValidationRules свойство игнорируется.

Применяется к

См. также раздел