nije loše ovo gore!!!
Ovih dana pokušavam da skontam i da isprogramiram neke validatore
Pokušavam da napravim ValidtingManager koji u sebi ima ErrorProvider da prikazuje poruke za datu kontrolu.
Sve to zasad lepo radi ali imam jedan problem, trnutno u ValidatingManagaru imam fukciju koja služi da kontroli postavim Validating
Code:
class ValidtingManager {
...
public static void AddVlidation(Control p_control, CancelEventHandler p_ceh)
{
...
p_control.Validating += p_ceh;
}
ok i to radi validacija se poziva kada se uđe na kontrolu (uli izlazi mrzi me sada da gledam u help)
Međutim ako se ne prođe preko kontrole validacija se neće pozvati!!!
kako ja da izvršim Validating neke kontrole????
Ovo mi npr treba kada želim da izvršim validaciju cele forme, jer možda su neka polja obavezna a nisu unesena pa ima se zato nije pozvala validating metoda
Na kraju mi je cilj da napravim ValidatingManager kome ću definisati funkcije like ove
public void AddValidating(Control p_control, funkcija_po_kojoj_se_validira)
sorry ne znam kako se ovo prosleđuju delegati ili funkcije pa ovako pišem ali bitan je smisao
Funkcija bi trebala da:
- doda funkcija_po_kojoj_se_validira na Validating prosleđene kontrole
- zapamti sve dodane p_control
public bool ValidateAll()
Funkcija bi trebala da:
- izvrši validaciju svih kontrola koje su dodane i da vrati ukupan rezultat validacije
...
U ovoj klasi napravio bi pool već nekih predefinisanih funkcija za validaciju (EmptyValidator, EmailValidator, NumberValidator raznih vrsta, ...)
tako da bi u konstrukroru neke konkretne forme potrebno bilo samo dodati sledeće npr
Code:
public Form1()
{
InitializeComponent();
_validationManager = new ValidationManager();
_validationManager.AddVlidation(textBox1, f1);
_validationManager.AddVlidation(textBox2, f2);
...
_validationManager.AddVlidation(textBoxn, fn);
}
gde su f1, f2, ... fn funkcije po kojima se validira (bilo iz navedenog pool-a ili neka korisnički definisana)
i validacija gotova
E ostaje mi samo da dobojem odgovor na dva pitanja
1. Kako da ja izvršim Control.Validating ????
2. hehe ima li ko ideju kako da prosledim funkcije
Hvala