DataGrid.RowValidationRules Właściwość

Definicja

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

ObservableCollection<ValidationRule>

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.

Dotyczy

Zobacz też