DataGrid.RowValidationRules Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.