DataGrid.RowValidationRules Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém as regras usadas para validar os dados em cada linha.
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 da propriedade
As regras que são usadas para validar os dados em cada linha.
Exemplos
O exemplo a seguir demonstra um ValidationRule que verifica se o valor da StartDate
propriedade de um Course
objeto é anterior ao valor da EndDate
propriedade. Este exemplo de código faz parte de um exemplo maior fornecido para o tópico Como implementar a validação com o tópico controle 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
O exemplo a seguir define a RowValidationRules propriedade em XAML. A ValidationStep propriedade é definida para UpdatedValue que a validação ocorra somente depois que o objeto de dados associado é atualizado. Quando um usuário especificar uma data de término anterior à data de início, um ponto de exclamação vermelho (!) será exibido no cabeçalho da linha.
<DataGrid.RowValidationRules>
<local:CourseValidationRule ValidationStep="UpdatedValue"/>
</DataGrid.RowValidationRules>
Comentários
O DataGrid controle permite que você execute a validação no nível da célula e da linha. Com a validação no nível da célula, você valida propriedades individuais de um objeto com associação de dados quando um usuário atualiza um valor. Com a validação no nível da linha, você valida objetos de dados inteiros quando um usuário confirma alterações em uma linha. Para criar uma regra de validação personalizada, crie uma classe derivada da ValidationRule classe e implemente o Validate método. Adicione a regra de validação personalizada à RowValidationRules coleção.
Se a ItemBindingGroup propriedade for usada, a RowValidationRules propriedade será ignorada.