DataGrid.RowValidationRules Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.