DataGrid.RowValidationRules Eigenschap

Definitie

Hiermee haalt u de regels op die worden gebruikt om de gegevens in elke rij te valideren.

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)

Waarde van eigenschap

De regels die worden gebruikt om de gegevens in elke rij te valideren.

Voorbeelden

In het volgende voorbeeld ziet u een ValidationRule voorbeeld waarmee wordt gecontroleerd of de eigenschapswaarde voor een StartDate object eerder is dan Course de EndDate eigenschapswaarde. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor het onderwerp Procedure: Validatie implementeren met het DataGrid-besturingselement .

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

In het volgende voorbeeld wordt de RowValidationRules eigenschap in XAML ingesteld. De ValidationStep eigenschap is zo ingesteld UpdatedValue dat de validatie alleen plaatsvindt nadat het afhankelijke gegevensobject is bijgewerkt. Wanneer een gebruiker een einddatum opgeeft die ouder is dan de begindatum, wordt er een rood uitroepteken (!) weergegeven in de rijkop.

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

Opmerkingen

Met DataGrid het besturingselement kunt u validatie uitvoeren op zowel cel- als rijniveau. Met validatie op celniveau valideert u afzonderlijke eigenschappen van een afhankelijk gegevensobject wanneer een gebruiker een waarde bijwerken. Met validatie op rijniveau valideert u hele gegevensobjecten wanneer een gebruiker wijzigingen doorvoert in een rij. Als u een aangepaste validatieregel wilt maken, maakt u een klasse die is afgeleid van de ValidationRule klasse en implementeert u de Validate methode. Voeg de aangepaste validatieregel toe aan de RowValidationRules verzameling.

Als de ItemBindingGroup eigenschap wordt gebruikt, wordt de RowValidationRules eigenschap genegeerd.

Van toepassing op

Zie ook