C# - Egyedileg készített osztályok adatainak megjelenítése DataGrid-ben

forráskód letöltése
Ha létrehozunk egy osztályt, mely tetszőleges számú és típusú adatot tárol, akkor általában szükség van arra, hogy ezeket az adatokat meg is jelenítsük, vagy akár szerkeszthetővé tegyük. Egy ilyen tetszőleges osztály létrehozása után az adat megjelenítést egy trükkel megoldva nagyon egyszerűen véghezvihetjük minimális munkával.
Mellékelt példa megnyitása előtt szükséges egy UserClassInDataGrid nevű virtuális könyvtár létrehozása, mely a mellékelt példa könyvtárára mutat. Ehhez nyissa meg a mellékelt mappa Tulajdonság ablakát és itt a Webmegosztás lapon engedélyezze a mappa megosztását olvasási és parancsfájlok futtatási jogával.
Kezdjük a saját osztályunk létrehozásával. Ebbe vegyünk fel különféle típusú változókat és mindegyikhez készítsünk egy-egy property-t is. Jelen példánál csak az adattárolást és a megjelenítést célozzuk meg feladatként, így ehhez elegendő lesz olyan property készítése, mely csak olvasható.
  public class User 
  {
    private string name;
    private string address;
    private DateTime bornDate;
    private bool administrator;
    public string Name
    {
      get { return name; }
    }
    public string Address
    {
      get { return address; }
    }
Az osztályban létrehozunk egy olyan konstruktort, melyen keresztül minden egyes változónknak értéket tudunk adni az adott objektum példány létrehozásakor.
    public User(string n, string a, string e, DateTime bd, bool ad) 
    {
      name = n;
      address = a;
      email = e;
      bornDate = bd;
      administrator = ad;
    }
Ezek után nézzük a felhasználást. A Page osztály Load eseményénél fogjuk létrehozni a megjelenítendő adatainkat. Tesszük ezt úgy, hogy létrehozunk első lépésként egy ArrayList objektumot, mely képes tetszőleges számú más objektum tárolására egy kollekcióban. Ezt követően tetszőleges számban hozzáadunk egy-egy elemet ehhez a kollekcióhoz úgy, hogy létrehozunk egy-egy objektumot a saját osztályunkból.
    private void Page_Load(object sender, System.EventArgs e)
    {
      ArrayList al = new ArrayList();       
      al.Add(new User("Kovács János", "1112 Budapest, Kunigunda 12.", "xy@hi.hu", new DateTime(1970, 9, 4), true));
      al.Add(new User("Nagy Elemér", "7652 Pécs, Kicsi út 232.", "abc@def.hu", new DateTime(1990, 4, 5), false));
Most pedig már csak az van hátra, hogy a DataGrid-hez kössük ezt az ArrayList kollekciót, a többi pedig megy „magától”. A DataGrid a tárolt osztályaink minden publikus és olvasható property-jét automatikusan kiolvassa és ennek megfelelően meg is jeleníti a táblázatban azokat.
      DataGrid1.DataSource = al;
      DataGrid1.DataBind();
    }