2009-04-22 3 views
2

Da es keine ErrorProvider-Klasse in .NETCF gibt, wie kann ich ähnliche Funktionalität implementieren (nicht unbedingt genau wie ErrorProvider)?Wie kann ich ErrorProvider in .NET Compact Framework emulieren?

Ich verwende alle regulären Datenbindungskonstrukte, um Steuerelemente mit der DataRow.RowError-Eigenschaft und der DataRow.SetColumnError-Methode an eine Datentabelle zu binden, aber ich kann keine Ereignisse in DataTable, BindingManagerBase usw. finden Haken Sie ein, um jede Art von Benachrichtigung zu erhalten.

Bin ich stecken eine Methode aufrufen, um manuell durchlaufen alle Steuerelemente auf meinem Formular und ändern Sie einige Look/Feel des gebundenen Steuerelements?

Danke, MrB

Antwort

0

Die ErrorProvider Klasse scheint ziemlich einfach - eigentlich ein zu einfach wenig. Wenn Sie Red Gate Reflector haben, würde ich empfehlen, die Klasse zu zerlegen und zu betrachten. Erstellen Sie andernfalls Dictionary<Control, String>.

Hier ist eine schnelle Idee auf Ihrem eigenen Anbieter zu schaffen:

Dictionary<Control, String> ErrorSet = new Dictionary<Control, String>(); 

public void SetError(Control control, String message) 
{ 
    // code for adding error information 
    ErrorSet.Add(control, message); 
} 

public String GetError(Control control) 
{ 
    // code for retrieving error information 
    return ErrorSet[control]; 
} 

public String Clear() 
{ 
    // code for clearing all errors 
} 

I R-G-Reflektor nicht hier haben, oder ich würde mehr Probenmethoden. Aber das sollte eine Art von Arbeitsprobe liefern.