Condividi tramite


DataGrid.RowValidationRules Proprietà

Definizione

Ottiene le regole utilizzate per convalidare i dati in ogni riga.

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)

Valore della proprietà

Le regole utilizzate per convalidare i dati in ogni riga.

Esempio

Nell'esempio seguente viene illustrato un ValidationRule oggetto che controlla se il valore della StartDate proprietà per un Course oggetto è precedente al EndDate relativo valore della proprietà. Questo esempio di codice fa parte di un esempio più ampio fornito per l'argomento Procedura: Implementare la convalida con il controllo 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

Nell'esempio seguente viene impostata la RowValidationRules proprietà in XAML. La ValidationStep proprietà è impostata su UpdatedValue in modo che la convalida venga eseguita solo dopo l'aggiornamento dell'oggetto dati associato. Quando un utente specifica una data di fine precedente alla data di inizio, nell'intestazione di riga viene visualizzato un punto esclamativo rosso (!).

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

Commenti

Il DataGrid controllo consente di eseguire la convalida sia a livello di cella che di riga. Con la convalida a livello di cella, si convalidano le singole proprietà di un oggetto dati associato quando un utente aggiorna un valore. Con la convalida a livello di riga, si convalidano interi oggetti dati quando un utente esegue il commit delle modifiche apportate a una riga. Per creare una regola di convalida personalizzata, creare una classe che deriva dalla ValidationRule classe e implementare il Validate metodo . Aggiungere la regola di convalida personalizzata alla RowValidationRules raccolta.

Se viene utilizzata la ItemBindingGroup proprietà , la RowValidationRules proprietà viene ignorata.

Si applica a

Vedi anche