Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

[C# WPF] Dodawanie elementów z listy do DataGrid

#1
[C# WPF] Dodawanie elementów z listy do DataGrid
Hej.
Od niedawna próbuję się zmierzyć z wyświetlaniem takiej niby "bazy danych" za pomocą DataGrid w WPF (to nie to samo co DataGridView w Windows Form - różnią się). Chodzi o to, że mam listę z około 10 "komórkami" czy jak to tam się nazywa (np. Imię, Nazwisko, wiek, itp). Zakładając że ta lista właśnie przechowuje mi osoby, można powiedzieć, że dodałem do nie kilku użytkowników. Dzięki dotychczasowej pomocy użytkowników z tego forum udało mi się wyświetlić całą listę w DataGrid za pomocą polecenia:

DataGrid1.ItemsSource = ListaOsób;

W ten sposób w datagrid wyświetlają się ładnie wszystkie wiersze a dodatkowo mam podpisane kolumny i stworzoną siatkę jak w excelu (automatycznie się to zrobiło).

Teraz jednak mam drugą pustą kontrolkę DataGrid i w niej chciałbym dodawać tylko wybrane "osoby". Jak można dodać wybrane wpisy z listy?
 System operacyjny: windows_ten Przeglądarka: firefox
#2
RE: [C# WPF] Dodawanie elementów z listy do DataGrid
Pewnie musisz osobno stworzyć druga listę osób, do niej przekopiować te wybrane z pierwszej i tak samo dodać, jak podałeś powyżej. To tak na szybko, co mi wpadło do głowy. DataGrid służy tylko do wyświetlenia a nie do operacji na listach. Operację robisz na bazie danych. A wynik wyświetlasz w DataGrid
Pozdrawiam.
Ajgor
 System operacyjny: windows_ten Przeglądarka: chrome
#3
RE: [C# WPF] Dodawanie elementów z listy do DataGrid
Rozumiem, dzięki za pomoc Wesoły

To teraz inne pytanie... znowu :D

Próbuję zrobić wyszukiwanie osób po nazwisku i wrzucenie tych znalezionych nazwisk do ListBoxa. Udało mi się to osiągnąć za pomocą takiego kodu:

for (int i = 0; i < ListaOsob.Count; i++)
{
bool WynikSzukania = ListaOsob[i].Nazwisko.Contains(SzukanaFraza);
if (WynikSzukania == true)
{
ListBox_Znalezione.Items.Add(ListaOsob[i].Nazwisko);
}
}

Używam do wyszukiwania Contains ponieważ chcę mieć możliwość wyszukania nazwiska np. Nowakowski po wpisaniu chociażby samego "Nowak". Wszystko ładnie, ale zastanawiam się czy ja tego nie robię jakoś okrężną drogą? Teraz planuję obsłużyć tego ListBoxa tak, że gdy wybiorę jakieś nazwisko z tej listy znalezionych i kliknę w przycisk "Pokaż" to wypełni mi się kilka textboxów takimi danymi jak Imię, Nazwisko, Wiek, itp dla tego konkretnego użytkownika. Co za tym idzie teraz będę musiał sprawdzić który "item" w listboxie mam zaznaczony, określić jego pozycję na liście i dopiero znając jego pozycje będę mógł wypełnić textboxa takimi sposobami jak "textbox.text = ListaOsob.Imie[x]", itp itd
I teraz o co mi chodzi - czy ja robię to wyszukiwanie dobrze? Może powienienem tworzyć kolejną listę i tam kopiować znalezione osoby?

Może napiszę dokładniej o co mi chodzi. Teraz wyszukuję osoby po nazwisku tak jak to napisałem wyżej, a więc porównuję wszystkie nazwiska na liście z tą szukaną frazą. Gdy coś znajdę to od razu wrzucam całe nazwisko tej osoby do listboxa.
Jeśli będę miał np. 5 osób o tym samym lub podobnym nazwisku to wszystkie pięć będę miał w listboxie. Teraz załóżmy, że zaznaczam jedno z tej listy i wciskam przycisk "pokaż" aby wyświetlić wszystkie informacje o wybranej osobie w kilku textboxach. Mam taki pomysł aby jeszcze w trakcie wyszukiwania, gdy coś zostanie znalezione do jakiejś tablicy intów wrzucać numer elementu na liście - w sensie przepisać wartość "i" która w tym kodzie powyżej oznacza właśnie pozycje z listy. Teraz gdy zaznaczę jakieś nazwisko w listboxie (wybiorę je) to powinienem po wciśnięciu przycisku "pokaż", sprawdzić w tej tabeli intów jaki numer miało to nazwisko na liście i uzupełni textboxy danymi dla tej pozycji z lisy. Mam nadzieję, że rozumiecie o co mi chodzi...

A tak się zastanawiam czy nie powinienem robić tego inaczej. Np. W trakcie wyszukiwania gdy coś zostanie znalezione to przekopiować tą całą osobę z Listy Osób do jakiejś nowej listy. Gdybym teraz znalazł np. te 5 osób to ta nowa lista zawierała by dane pięciu znalezionych osób. Teraz wystarczy za pomocą pętli wypisać nazwiska tych 5 osób do listboxa. To rozwiązanie ma jeden plus, że teraz gdybym chciał wyświetlić wszystkie informacje o wybranej osobie to po jej zaznaczeniu w listboxie wystarczy sprawdzić którą pozycję listboxa wybrałem i ten sam numer osoby z nowej listy wyrzucić do tych textboxów. Tylko właśnie za bardzo nie wiem czy jest sens zmieniać.
 System operacyjny: windows_ten Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki ([C# WPF] Dodawanie elementów z listy do DataGrid)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Adresy, szesnastkowe dodawanie soul1648 5 10279 03.04.2017, 23:21
Ostatni post: Ajgor
  [C#] Wprowadzenie dowolnej długości listy kontaktów do programu. Ayumi 3 9033 16.02.2017, 15:52
Ostatni post: aht
Ściana [C++] Dodawanie char do scieżki pliku Smokolisz 1 9438 16.12.2016, 10:30
Ostatni post: Szachista

Skocz do: