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