Solved

What are the minimal requirements to a video card for working with WPF DataGrid controls?

Posted on 2014-12-15
5
177 Views
Last Modified: 2015-01-14
We need to build an application for the Windows OS 7/8 that uses WPF grid controls to browse big arrays of tabular data. We have tested the built-in .NET DataGrid control, some 3rd-party grid controls like Xceed WPF DataGrid or open-source solutions like WPF Table View (http://tableview.codeplex.com/) with a typical table of 25 columns and 100'000 rows, but it seems all grids we tried have problems with redrawing in real time while we are scrolling them, even in the horizontal direction.

We tested them on a laptop with Core i5 and the Intel HD Graphics 4000 video card on board, which is the typical environment for us. As I understand, WPF rendering technology implies that a pc user should have an enough powerful video card that supports the latest versions of DirectX to draw WPF controls without performance problems. I wonder, are all our WPF grid scrolling performance problems related to this "poor" hardware equipment. If so, then how to choose a suitable and non-expensive video card that will be enough for for this task?
0
Comment
Question by:Ed70
  • 2
  • 2
5 Comments
 
LVL 40
ID: 40501869
The problem is not the video card, its the amount of data that you put in the grid.

Did you measure the size of the data in 25 columns of 100000 rows?  Even if you display only byte values, its 2,500,000 bytes. And I suppose that some columns require more than 1 byte, am I right? Multiply that by 4 if you are displaying integers, more if you have decimal values, even more if there is text in some of the columns. That is way too much to handle for any control, if not simply by the computer itself.

You need to limit the amount of data that is displayed. Anyway, try to find a user who is interested in using a scrollbar to scroll through 100000 rows.

Ask the user what he needs, and query your database so that only the needed subset is displayed in the grid.

100,000 rows is something for the database to handle, not something to be displayed to the user.
0
 
LVL 32

Expert Comment

by:Robberbaron (robr)
ID: 40502403
yep, paging or better an index is required.
0
 
LVL 1

Author Comment

by:Ed70
ID: 40504354
Jacques, I cannot accept your answer as solution. The problem is not in the number of rows, though I totally agree that it's feasible to browse all 100'000 rows in a grid, but some users need strongly require this as they can sort and group rows, and this is their way to work with data.

As for the number of rows, we see the same poor performance even if the standard DataGrid contains 10'000 or even 1000 rows. Significant delays when using the PAGE UP/PAGE DOWN keys, delays with scrolling... We see this even on a more powerful pc with a discrete GeForce 9500 GT video card.
0
 
LVL 1

Author Comment

by:Ed70
ID: 40504395
Is there a synthetic test we can launch to estimate the performance of the video card (perhaps, together with the CPU) and tell whether this couple is enough good for our WPF-DataGrid-related task?
0
 
LVL 32

Accepted Solution

by:
Robberbaron (robr) earned 500 total points
ID: 40504420
it seems you are not alone... have a read of MSDN Optimising Performance  I had not heard of
In this case, it makes sense to use UI virtualization,

If the list to display is large, the application's performance can be affected. This is because the standard layout system creates a layout container for each item associated with the list control, and computes its layout size and position.

ive never dealt deeply into WPF but had to implement paging in an app to improve performance... so can only point out item 5 in http://www.codeproject.com/Articles/784529/Solutions-for-WPF-Performance-Issue as a link that seems to delve into performance issues.
0

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…

757 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now