DataGrid.RowValidationRules Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera reguły używane do sprawdzania poprawności danych w każdym wierszu.
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)
Wartość właściwości
Reguły używane do weryfikowania danych w każdym wierszu.
Przykłady
W poniższym przykładzie pokazano ValidationRule , czy StartDate
wartość właściwości obiektu Course
jest wcześniejsza niż jego EndDate
wartość właściwości. Ten przykład kodu jest częścią większego przykładu przedstawionego w temacie How to: Implement Validation with the DataGrid Control (Instrukcje: implementowanie walidacji za pomocą kontrolki 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
Poniższy przykład ustawia RowValidationRules właściwość w języku XAML. Właściwość jest ustawiona ValidationStep tak UpdatedValue , aby walidacja odbywała się dopiero po zaktualizowaniu powiązanego obiektu danych. Gdy użytkownik określa datę zakończenia, która jest wcześniejsza niż data rozpoczęcia, czerwony wykrzyknik (!) pojawia się w nagłówku wiersza.
<DataGrid.RowValidationRules>
<local:CourseValidationRule ValidationStep="UpdatedValue"/>
</DataGrid.RowValidationRules>
Uwagi
Kontrolka DataGrid umożliwia przeprowadzenie walidacji zarówno na poziomie komórki, jak i wiersza. W przypadku walidacji na poziomie komórki sprawdzasz poszczególne właściwości powiązanego obiektu danych, gdy użytkownik aktualizuje wartość. W przypadku walidacji na poziomie wiersza można zweryfikować całe obiekty danych, gdy użytkownik zatwierdzi zmiany w wierszu. Aby utworzyć niestandardową regułę weryfikacji, utwórz klasę, która pochodzi z ValidationRule klasy i zaimplementuj metodę Validate . Dodaj niestandardową regułę walidacji do kolekcji RowValidationRules .
ItemBindingGroup Jeśli właściwość jest używana, RowValidationRules właściwość jest ignorowana.