Difference between ListView and DataGrid in WPF?

.NetWpfListviewGridviewDatagrid

.Net Problem Overview


I have to retrieve some questions from the database and display them on the user screen dynamically. I also need to add some controls in the columns of grid view, basically a question and input box for an answer.

Please suggest which one should I use? ListView or DataGrid?

.Net Solutions


Solution 1 - .Net

Well, in WPF the difference between ListView and DataGrid is just one. Editing. You need editing use DataGrid, otherwise use ListView. You can edit in ListView also but it is easier and build in DataGrid. Otherwise, whatever can be displayed in DataGrid, can be displayed in ListView.

One thing which DataGrid supports and ListView doesn't (out of the box) is automatic column generation.

You can read this article on CodeProject for a better understanding of DataGrid and also about the major differences between ListView and DataGrid.

Solution 2 - .Net

I'm not a WPF expert, but it terms of just the controls themselves.

When thinking of ListView think Windows Explorer, the pane where you see all you're files, thats a ListView.

When thinking data base its usually (I said usually) a data grid, mouse over the gridview tag and read the description.

Some very obvious reasons why you would want a gridview is its directly editable. You can have your user enter the questions and the answer in there. Note, since ListViewItem is an Content Control you also could customize it easily like this article does.

Also see if this GridView tutorial helps.

You haven't given much of the description of how you need the UI, but you could play around and do anything you like.

You could even make a User Control for a [Question + Input box for Answer]. Then you could use a StackPanel (or even a listview) to list them out.

Hope that helped.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMangoTableView Question on Stackoverflow
Solution 1 - .NetYogeshView Answer on Stackoverflow
Solution 2 - .NetgideonView Answer on Stackoverflow