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 ListTeraz pozostaje nam tylko zbindować dane z kontrolką DataGridView.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; } } }
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(); BindingListNajpierw tworzymy obiekt "dane" klasy BindingClass, następnie tworzymy binding-listębindingLista = new BindingList (dane.ListaDanych()); dataGridView1.DataSource = bindingLista; }
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.
Brak komentarzy:
Prześlij komentarz