Dzisiaj króciutko pokażemy sobie jak bindować dane do kontrolki DataGridView.
Więc do dzieła.
Tworzymy nowy projekt WinFormsowy i dodajemy jeden button i kontrolkę
DataGridView z sekcji Data paska ToolBar.
Całość powinna wyglądać mniej więcej tak.
Teraz utworzymy klasę Person w której zdefiniujemy kilka właściwości określające
cechy osoby.
PPM klikamy na projekt i dodajemy klasę, którą nazywamy Person.
W klasie definiujemy trzy właściwości:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DataGridView_Test
{
public class Person
{
public int ID { get; set; }
public string Imie { get; set; }
public string Nazwisko { get; set; }
}
}
Jak widzimy kodu bardzo mało - i generalnie o to nam chodzi.Teraz dodajemy jeszcze jedną klasę, w której stworzymy listę osób oraz jedną
metodę. Klasę nazwiemy przykładowo "BindingClass".
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DataGridView_Test
{
public class BindingClass
{
//lista osób
private List person = new List
{ new Person { ID = 1, Imie = "Wilie", Nazwisko = "Coyote"},
new Person { ID = 2, Imie = "Road", Nazwisko = "Runner"},
new Person { ID = 3, Imie = "Marysia", Nazwisko = "Sierotka"}
};
///
/// Metoda zwraca listę osób z kolekcji person
///
///
public List ListaDanych()
{
List list = new List();
foreach (var osoba in person)
{
list.Add(osoba);
}
return list;
}
}
}
Teraz pozostaje nam tylko zbindować dane z kontrolką DataGridView.Przechodzimy do zdarzenia buttona i tutaj napiszemy 3 linijki kodu, które nam załatwią
bindowanie danych.
private void button1_Click(object sender, EventArgs e)
{
BindingClass dane = new BindingClass();
BindingList bindingLista = new BindingList(dane.ListaDanych());
dataGridView1.DataSource = bindingLista;
}
Najpierw tworzymy obiekt "dane" klasy BindingClass, następnie tworzymy binding-listęi jako argument przekazujemy metodę ListaDanych klasy Bindingdata, która nam zwraca
kolekcję osób. Teraz zostało tylko do kontrolki DataGridView przypisać nasze dane
i to wszystko :).
Tym samym sposobem oddzieliliśmy warstwę interfejsu użytkownika od danych.
Całość wygląda mniej więcej tak:
Zachęcam do własnych testów.
I to było by na tyle w dzisiejszym wpisie. Powodzenia.