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


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 свойство игнорируется.

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

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