massther napisał(a)
"mowisz o zupelnie innych tabelach na jednym gridzie a to jest amatorsko" - zależy, jeśli chcesz mieć generyczny mechanizm wyświetlający dane z dowolnego źródła to nie jest to wcale amatorsko, wręcz przeciwnie, nie wyobrażam sobie tego inaczej, niż stosować jednego grid'a, czy ogólniej kontrolki wyświetlającej dane. Oczywiście źródło może zwracać też metadane precyzujące jak pewne elementy (czy nawet całość) zaprezentować.
Nie napisałeś też że "taby" to tak na prawdę filtry. Pomijam kwestię że trochę osobliwe rozwiązanie wymyśliłeś. Rozumiem że tekst na tab parsowany jest do jakiejś wartości enuma. Dlaczego nie zrobisz combobox'a do wyboru filtru? Lub po prostu kontrolek do filtrowania nad odpowiednimi kolumnami. Podpatrz sobie rozwiązania np. DevExpress czy Telerika.
Rozumiem że jeśli chodzi o pozycjonowanie kontrolek etc. nie masz doświadczenia, stąd łatwiej użyć ci TabControl i w sumie jest to ok podejście.
Zachęcam do zapoznania się z Dock i Anchor.
Możesz też podpatrywać pewne rozwiązania na codeproject.com, można tam sporo fajny rozwiązań znaleźć.
Latwiej szybciej , debug free. W zasadzie to bylo czego szukalem, analizowalem inne rozwiązania i po prostu to mi odpowiadalo, nie chciałem się zakopać w tworzenie custom controlek , skoro ta funkcjonalność już istnieje, trzeba było tylko wymyślić workaround.
Co do grida , z refleksji musialbys tworzyc kolumny na bazie pol w klasie, czy tam dataset, entity czy co uzywasz. Niezle rozwiazanie nie pomyslalem o tym ,ale w tym projekcie ktory aktualnie robie jest mi to zupełnie niepotrzebne. Wydaje mi sie jednak że ciężej byłoby tym zarządzac, nie mając tego w designerze. Szkoda mojej pary na takie rozwiązania, tylko po to żeby wyświetlić jedną tabelę :)
Taby to nie filtry. Podalem ci to jako przykład. będą to różne zestawy danych z jednej tabeli. Na przyciskach tabów bede potrzebował wyświetlić stan (zajęty ,działa) w postaci ikonki - combo odpada.
Dzięki za komentarz, jednak zostane przy swoim rozwiązaniu , gdyż implementacja tego nie zajela mi dłużej niż 5 min (poza szukaniem jak to zrobić oczywiscie)