Partilhar via


DataGrid.RowValidationRules Propriedade

Definição

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

ObservableCollection<ValidationRule>

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.

Aplica-se a

Confira também