Compartilhar 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

As regras 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 How to: Implement Validation with the DataGrid Control .

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 após a atualização do objeto de dados associado. Quando um usuário especifica uma data de término anterior à data de início, um ponto de exclamação vermelho (!) aparece 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 em nível de célula, você valida as propriedades individuais de um objeto de dados associado quando um usuário atualiza um valor. Com a validação em nível de 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 que deriva 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