DataGrid.RowValidationRules Propiedad

Definición

Obtiene las reglas que se usan para validar los datos de cada fila.

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)

Valor de propiedad

Las reglas que se utilizan para validar los datos de cada fila.

Ejemplos

En el ejemplo siguiente se muestra un ValidationRule objeto que comprueba si el valor de propiedad StartDate de un Course objeto es anterior a su EndDate valor de propiedad. Este ejemplo de código forma parte de un ejemplo más grande proporcionado para el tema How to: Implement Validation with the DataGrid Control (Cómo: Implementar validación con el control 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

En el ejemplo siguiente se establece la propiedad RowValidationRules en XAML. La propiedad ValidationStep se establece en UpdatedValue para que la validación se produzca solo después de actualizar el objeto de datos enlazado. Cuando un usuario especifica una fecha de finalización anterior a la fecha de inicio, aparece un signo de exclamación rojo (!) en el encabezado de fila.

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

Comentarios

El control DataGrid permite realizar la validación en el nivel de celda y de fila. Con la validación de nivel de celda, valida las propiedades individuales de un objeto de datos enlazado cuando un usuario actualiza un valor. Con la validación de nivel de fila, valida objetos de datos completos cuando un usuario confirma cambios en una fila. Para crear una regla de validación personalizada, cree una clase que derive de la ValidationRule clase e implemente el Validate método . Agregue la regla de validación personalizada a la RowValidationRules colección.

Si se usa la ItemBindingGroup propiedad , se omite la RowValidationRules propiedad .

Se aplica a

Consulte también