2012-04-11 6 views
1

Wir verwenden XamDataGrid in unserer WPF-Anwendung. Es funktioniert gut, wir Unterstützung in unserer Anwendung für IDataErrorInfo hinzugefügt:XamDataGrid und Validierung eines Zellenelements für eine gesamte Sammlung

<igDP:FieldLayoutSettings AllowFieldMoving="No" 
    AutoGenerateFields="False" 
    SupportDataErrorInfo="RecordsAndCells" 
    DataErrorDisplayMode="ErrorIconAndHighlight" /> 

Der auf diesem Datenraster geht von einem Objekt Foo an einen ObservableCollection Bindung, die IDataErrorInfo implementiert. Wir haben eine Datenvalidierung für einzelne Eigenschaften, z. B. eine Text-Eigenschaft, die einen Fehler generiert, wenn eine Eigenschaft leer ist oder zu viele Zeichen enthält. Dies funktioniert hervorragend für Updateszenarien - die Zelle mit dem Fehler wird hervorgehoben und ein Tooltip wird angezeigt.

<igDP:Field Name="Text" 
     Label="{base:TextID _TextField}"> 
    </igDP:Field> 

Was müssen wir tun ist eine Bestätigung des Wertes der Zelle gegen die gesamte beobachtbare Sammlung an die Datenquelle gebunden. Wenn also der Benutzer "Apple" in Zeile 2 für die Textzelle eingibt, aber "Apple" bereits in Zeile 10 Textzelle vorhanden ist, erzeugen wir eine Fehlerbedingung, die der Benutzer korrigieren muss, bevor er fortfährt.

Wie können wir dies am besten mit XamDataGrid erreichen? Wir wollen es sauber halten, so dass das Objekt Foo nur seine eigenen Eigenschaften validiert und nichts über die gesamte Sammlung weiß.

Dieser Artikel ist sehr nahe, aber ich bin mir nicht sicher, wie es mit XamDataGrid zu erreichen: Validation of collection item against entire collection to prevent duplicates Könnten wir die XamDataGrid Items-Auflistung an einen benutzerdefinierten Validator übergeben?

Antwort

Verwandte Themen