DataGrid.RowValidationRules Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die Regeln ab, die zur Überprüfung der Daten in jeder Zeile verwendet werden.
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)
Eigenschaftswert
Die Regeln, die verwendet werden, um die Daten in jeder Zeile zu überprüfen.
Beispiele
Im folgenden Beispiel wird ein ValidationRule veranschaulicht, das überprüft, ob der StartDate
Eigenschaftswert für ein Course
Objekt früher als sein EndDate
-Eigenschaftswert liegt. Dieses Codebeispiel ist Teil eines größeren Beispiels für das Thema Vorgehensweise: Implementieren der Validierung mit dem DataGrid-Steuerelement .
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
Im folgenden Beispiel wird die RowValidationRules-Eigenschaft in XAML festgelegt. Die Eigenschaft ValidationStep wird auf UpdatedValue festgelegt, sodass die Validierung erst geschieht, nachdem das gebundene Datenobjekt aktualisiert wurde. Wenn ein Benutzer ein Enddatum angibt, das älter als das Startdatum ist, wird in der Zeilenüberschrift ein rotes Ausrufezeichen (!) angezeigt.
<DataGrid.RowValidationRules>
<local:CourseValidationRule ValidationStep="UpdatedValue"/>
</DataGrid.RowValidationRules>
Hinweise
Mit dem DataGrid-Steuerelement können Sie sowohl auf Zellenebene als auch auf Zeilenebene Validierungen durchführen. Mit der Validierung auf Zellebene überprüfen Sie einzelne Eigenschaften eines gebundenen Datenobjekts, wenn ein Benutzer einen Wert ändert. Mit der Validierung auf Zeilenebene überprüfen Sie ganze Datenobjekte, wenn ein Benutzer Änderungen an einer Zeile anwendet. Um eine benutzerdefinierte Validierungsregel zu erstellen, erstellen Sie eine Klasse, die von der ValidationRule -Klasse abgeleitet wird, und implementieren Sie die Validate -Methode. Fügen Sie der Auflistung die benutzerdefinierte Validierungsregel RowValidationRules hinzu.
Wenn die ItemBindingGroup -Eigenschaft verwendet wird, wird die RowValidationRules -Eigenschaft ignoriert.