Ce e DataBinding? Pe scurt spus:
DataBinding este o caracteristica puternica, oferit de .NET framework, care permite elementelor vizuale intr-un client sa se conecteze la o sursa de date, cum ar fi DataSets, DataViews, Array, etc. O conexiune este stabilită intre sursa si element, astfel incit orice modificiri aduse la sursa de date sunt reflectate imediat în elementul vizual si vice-versa.
Pentru ca mie imi place sa exemplific decat sa descriu, o sa incep direct printr-un exemplu, care demonstreaza folosirea DataBinding. O sa creez un proiect winform simplu, care va include o clasa “Person”. O instanta a aceseti clase va fi afisata in fereastra aplicatiei folosind cateva controale de tip TextBox.
Asadar, fara explicatii suplimentare, clasa Person este definita astfel:
public class Person { public Person(string fName, string lName, int age) { FirstName = fName; LastName = lName; Age = age; } public string FirstName { get; set; } public string LastName { get; set; } public int Age { get; set; } public override string ToString() { return string.Format("{0} {1} is {2} old", FirstName, LastName, Age); } }
Fereastra aplicatiei arata asa:
Acum vine partea specifica legarii datelor la controalele vizuale:
Sintaxa este urmatoare: txtFN.DataBindings.Add(“Text”, p, “FirstName”); si s-ar traduce in limba romana cam asa: Leaga de controlul txtFN, de proprietatea lui numita Text proprietatea FirstName a obiectului p. Sau mai simplu: txtFN.Text va primi p.FirsName.
Codul care completeaza datele arata asa:
public partial class Form1 : Form { Person p; public Form1() { InitializeComponent(); p = new Person("Ady", "Zeltzer", 32); txtFN.DataBindings.Add("Text", p, "FirstName"); txtLN.DataBindings.Add("Text", p, "LastName"); txtAge.DataBindings.Add("Text", p, "Age"); txtFN_d.DataBindings.Add("Text", p, "FirstName"); txtLN_d.DataBindings.Add("Text", p, "LastName"); txtAge_d.DataBindings.Add("Text", p, "Age"); } private void btnShow_Click(object sender, EventArgs e) { txtInfo.Text = p.ToString(); } }
Se observa ca atunci cand este schimbat numele, de exemplu, in textboxul din partea stanga, modificarea apare imediat si in textboxul din partea dreapta, si in textboxul info (click pe butonul Info – care afiseaza obiectul p in momentul apasarii.
Desi nu am folosit in proiecte practice pana acum – am preferat sa fac manual actualizarile/atribuirile de valori, databinding mi se pare un instrument puternic, care poate fi folosit pentru a usura si simplifica munca programatorului in multe cazuri. Se aplica si pe asp.Net.
Codul sursa pentru acest articol
Jean Valjean says:
Interesant exemplul cu DataBinding. Ar fi super daca l-ai putea extinde la o baza de date (chiar si Access) cu operatiuni simple CRUD.
zeltera says:
Daca as folosi o baza de date ar trebui sa folosesc alt obiect pentru a afisa datele – un datagrid sau ceva aseamanator. Exemplul prezentat aici este tocmai pentru a exemplifica folosirea unui textbox – lucru mai putin folosit de programatori.
Toata lumea care lucreaza cu baze de date foloseste bind intre date din tavele si dataview (sau asemanator) insa nu am prea vazut pana acum bind la un textbox.
E in lucru un exemplu putin mai complex pentru databinding. Multumesc pentru feedback.
Pingback/Trackback
Controale in .Net CE – Partea 2-a | by zeltera
Cornel says:
Buna ziua. Daca nu indraznesc prea mult. Sunt in cautare de a cunoaste si intelege astfel de lucruri. Fiind entuziast de windows phone vreau sa-mi construiesc o aplicatie pentru uz personal. O colectie de poezii. Exemplul din acest articol ma lumineaza oarecum, insa cum il aplic la windows phone? Ideea aplicatiei este definita in acest articol: un TextBox cu titlul poeziei care sa afiseze la apasare poezia. Si ce tip de fisier sa folosesc pentru continut? .json e bun? Imi cer scuze pentru indrazneala dar ori sfat imi e de ajutor. Daca aveti timp si bunavointa imi puteti da niste sfaturi in acest sens la adesa cornelde@hotmail,com ? Multumesc mult.