DataGrid.RowValidationRules Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 .