2012-12-21 20 views
10

Es scheint einen Fehler in WPF 4.0 DataGrids zu geben.WPF-Datagrid-Zeilenüberprüfung

Ich implementiere IDataErrorInfo auf meine Objekte, und ich habe eine ObservableCollection, an die ein Datagrid bindet. Ich habe ValidatesOnDataErrors=True auf die Spalten gesetzt, aber nichts in den Zeilen gesetzt. Ich habe UpdateSourceTrigger="PropertyChanged"

Die Validierung funktioniert perfekt auf Zelle für Zelle Ebene. Wenn Sie eine Zelle jedoch nicht verwenden, gehen Sie zu einer anderen Zelle und kehren dann zur ungültigen Zelle zurück und geben gültige Daten ein. Die Zelle wird gültig, aber die Zeile bleibt ungültig, wenn sie gültig sein soll.

+0

Ich habe genau das gleiche Problem! – Reilly

+0

"Wenn Sie eine Zelle jedoch ungültig lassen, gehen Sie zu einer anderen Zelle und kehren Sie dann zur ungültigen Zelle zurück und geben Sie gültige Daten ein. Die Zelle wird gültig, aber die Zeile bleibt ungültig, wenn sie gültig sein soll." Genau das gleiche Problem. – SKINDER

+1

Baum Jungs, gleiche WPF Ausgabe und noch keiner geposteter Code. Das wäre sowieso ein schlechter Titel für einen Film. : D Hat jemand von euch gedacht, etwas Code oder Xaml zu posten? –

Antwort

2

Bei der allgemeinen Eigenschaftsprüfung wird diese validiert, sobald die Quelle aktualisiert wurde, aber im Fall einer RowValidation müssen Sie die RowValidationRule angeben, um die RowValidation durchzuführen.

<DataGrid.RowValidationRules> 
     <DataErrorValidationRule ValidatesOnTargetUpdated="True" ValidationStep="UpdatedValue" /> 
</DataGrid.RowValidationRules> 

Nun ist die DataGrid wird für die Zeilen validiert auch können Sie die RowValidationErrorTemplate bieten die Fehler in benutzerdefinierten Format zu zeigen.

0

Hatte das gleiche Problem. Die Fehlerbehebung für mich war ValidatesOnTargetUpdated="True" auf die Validierungsregel, die jedes Mal eine weitere Überprüfung erzwingt, wenn das Steuerelement aktualisiert wird.