2008-09-24 18 views
22

Widziałem wiele dyskusji i ludzi pytających o DataGrid dla WPF i narzekających na to, że Microsoft nie ma jednego z ich ramami WPF do daty. Wiemy, że WPF jest świetną technologią interfejsu użytkownika i ma koncepcję ItemsControl, DataTemplate, itp., Aby stworzyć wspaniały UX. Nawet WPF ma ściślej dopasowaną kontrolę - ListView, która może być łatwo szablonowana, aby dać lepszy UX niż tradycyjny wyświetlacz typu Datagrid. I powiedziałbym, że gotowa kontrola DataGrid zabije lub ukryje dużo kreatywności i na pewno zmniejszy innowacje w dziedzinie User Experience.Czy DataGrid jest koniecznością w WPF?

Co sądzisz o potrzebie DataGrid w WPF jako komponencie Framework? Jeśli uważasz, że jest to konieczne, to po prostu dlatego, że świat jest tak przyzwyczajony do sposobu wyświetlania danych DatGrid przez wiele lat?

Niektóre inne wątki o dyskusję o DatGrid są here i here

Link do WPF ToolKit - Najnowsze WPF DatGrid

Odpowiedz

29

datagrids są doskonałe do wyświetlania dużych ilości danych tabelarycznych zmierzały do ​​sklepu podkładowej.

Ale to, co stało się w świecie WinForm, było to, że ludzie często używali ich do wszystkiego, co wymagało wieloelementowej przewijanej listy. Skojarzone niezależne DataGrids wkrótce stały się dostępne, co pozwoliło kolumnom i polom zawierać przyciski i ComboBoxy i ikony, itp.

DataGrid stała się koniem pociągowym, ponieważ istniało zapotrzebowanie na coś, co można było nakłonić do zachowania się. Podobnie stało się z DataTables, zanim pojawiły się ogólne kolekcje - a kiedy używasz dużej ilości DataTables, przedstawienie go w interfejsie z DataGrid jest ścieżką najmniejszego oporu.

Myślę, że kiedy pojawiła się WPF, wielu programistów takich jak ja wciąż myśleli w ten sposób i szukali portów WPF koncepcji DataGrid.

5

Nie można wymyślić lepszej kontroli wyświetlania danych tabelarycznych, szczególnie w aplikacjach biznesowych, w których nie chcemy wymyślać koła, szablonując/rozwijając (Headered) ItemsControl, aby zachowywał się jak stary dobry DGV. Na pewno widziałeś this.

1

Tak jest! Wśród wielu innych kontroli, których ms nie udało się dostarczyć. (Datepicker, NumericControl)

MS powinien najpierw dać nam narzędzia, aby wykonać pracę, to najmniej oczekuję od środowiska programistycznego z hype wpf.

+0

Zgadza się! potrzebujemy DatePicker, NumericControl i właściwie WSZYSTKIE brakujące formanty wygrywające! i nie tylko, ale jeśli chcą przyciągnąć ppl do WPF, powinny ułatwić sobie życie dzięki wielu wbudowanym kontrolom + wbudowanym motywom dla każdego rozwiązania !!! – Shimmy

1

Po pracy z WPF przez około 2 lata. Powiedziałbym, że DataGrid jest po prostu uwielbionym ListBoxem (ponieważ [prawie] wszystko w WPF jest pozbawione stylu).

Można zaprojektować ListBox, aby pobrać encję i pokazać kontrolkę "record" dla każdego wpisu. W zależności od tego, jak bardzo są one elastyczne, mogą automatycznie dostosowywać się na podstawie przekazanego podmiotu.

+0

Datagrids oferuje wiele udogodnień, których nie można zrobić z utytułowanym listbox. Edycja, sortowanie na dowolnym polu, grupowanie użytkowników końcowych i setka innych funkcji, które posiada dobry datagrid. –

+0

Zgadzam się ... ale kontekst pytania brzmiał: "Co mam zrobić? Microsoft nie ma DataGrid" Dałem najlepszą odpowiedź w tym czasie. Dzisiaj istnieje DataGrid, która robi wiele cudownych rzeczy. Nie kłócę się z tym. Zostało to zaksięgowane, gdy nie istniała DataGrid. Moja firma używała w tym czasie Infragistics DataGrid. – Phobis

+0

Nie zgadzam się, podczas gdy ListBox kontroluje tylko jednostronne dane, DataGrid ma na celu kontrolowanie danych tabelarycznych (kolumny + wiersze), co jest niesamowite. – Shimmy

1

Jest to niezbędne, ale można uzyskać prawie taki sam efekt z ListView, który używa GridView, prawda?

+0

Tak właśnie jest pochodzenie mojego pytania. Nigdy nie myślałem o dużej potrzebie DataGrid w doskonałej technologii interfejsu użytkownika, takiej jak WPF –

+1

. Jest wiele rzeczy, których nie dostaniesz w ten sposób. Sortowanie według zawartości kolumny jest tylko najbardziej oczywiste i podstawowe. Możesz wdrożyć sortowanie, jasne, ale dlaczego powinieneś? W moim sklepie dodaliśmy ponad 3000 linii kodu do podstawowego ListView/GridView, aby uzyskać odpowiedni dla nas kontroler. – PeterAllenWebb

+0

z ListView nie można dodać nowych wierszy tak łatwe, jak w DataGrid, ponieważ nie ma EditMode w ListView. – Shimmy

2

Tak DataGrids nigdy nie zniknie jako istotne składniki interfejsu użytkownika. Ludzie uwielbiają swoje arkusze kalkulacyjne i chcemy dzielić się tą miłością!

Zauważ, że MS wysyłać te dodatkowe kontrole - oni stworzyli WPF Toolkit na CodePlex do zapewnienia szybkiej realizacji zamówienia, open-source styl wdrożenia.

Obejmuje już DataGrid i Kalendarz.

3

Nikt nie kwestionuje, że możesz samodzielnie wprowadzić kontrolę DataGrid w WPF. To samo można powiedzieć o WinForm, choć byłoby to trudniejsze. Zaimplementowałem pewną funkcjonalność z ListView - prezentacja danych tabelarycznych jest łatwa, można nawet powiedzieć, że jest dobrze obsługiwana. Jednak ilość kodu, ręcznie napisanego kodu, potrzebnego do edycji ListView jest ogromna.

Aplikacje biznesowe zwykle wymagają edycji wielu tabel, a Ty nie chcesz być kreatywny, chcesz być szybki. Właśnie dlatego DataGrid jest potrzebna moim zdaniem.

+3

Spieram się z tym. Zrobienie dobrego datagridu zajmuje dużo czasu. Wersja 1.0 naszego datagridu (Xceed jeden dla WPF, w styczniu 2007) zajęła ponad 11 000 godzin, a nadchodzący Silverlight zajął ponad 17500 godzin. Stabilność, funkcje, dobre API, wszystko to zajmuje dużo czasu ... na zdrowie –