Hi!
Here is my validation code.
(I've created a partial class for it)
public partial class MailingTemplateEntity : EntityBase2, ISerializable
{
protected override bool OnValidateFieldValue(int fieldIndex, object value)
{
bool toReturn = true;
switch ((MailingTemplateFieldIndex)fieldIndex)
{
case MailingTemplateFieldIndex.Bezeichnung:
{
string text = (string)value;
if (text == null || text == "")
{
SetEntityFieldError(MailingTemplateFieldIndex.Bezeichnung.ToString(), "Die Bezeichnung darf nicht leer sein.", false);
toReturn = false;
}
break;
}
case MailingTemplateFieldIndex.Betreff:
{
string text = (string)value;
if (text == null || text == "")
{
SetEntityFieldError(MailingTemplateFieldIndex.Betreff.ToString(), "Der Betreff darf nicht leer sein.", false);
toReturn = false;
}
break;
}
case MailingTemplateFieldIndex.Text:
{
string text = (string)value;
if (text == null || text == "")
{
SetEntityFieldError(MailingTemplateFieldIndex.Text.ToString(), "Der Text darf nicht leer sein.", false);
toReturn = false;
}
break;
}
case MailingTemplateFieldIndex.TemplatekategorieId:
{
if (value == null)
{
SetEntityFieldError(MailingTemplateFieldIndex.Text.ToString(), "Die Kategorie darf nicht leer sein.", false);
toReturn = false;
}
break;
}
default:
{
toReturn = true;
break;
}
}
return toReturn;
}
}
In the form I added the following code to display the error message
(Bound to the event "Validated" of the textboxes):
private void control_Validated(object sender, EventArgs e)
{
// Pointer auf Errormeldungen aus dem BO
IDataErrorInfo dataErrorInfo = ((IDataErrorInfo)_templateBindingSource.Current);
// Pointer auf das Control
Control control = (Control)sender;
// Ist das Control überhaupt (schon) gebunden?
if (control.DataBindings.Count > 0)
{
// Hänge die Errormeldung des BO-Feldes an das entsprechende Control
this._myError.SetError(
control, dataErrorInfo[control.DataBindings[0].BindingMemberInfo.BindingField]);
}
}
Regards
Thorsten