Freigeben über


DataGrid.RowValidationRules Eigenschaft

Definition

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.

Gilt für:

Weitere Informationen