User (Old forums)MemberSeptember 5, 2007 at 8:12 amPost count: 23064
Are there any samples / guidelines for using the WPF grid in a high-performance environment? Specifically, we have 2000-5000 rows of data, with 15-30 columns. The each row could be updated many times per second.
Traditionally we’d use a virtual grid and some sort of front-side data cache to prevent the grid controls from getting overloaded. After all, there’s no point in more than 10-15 updates across the visibile grid area as the eye is hard-pressed to perceive more than that. In WinForms, databinding is/was too slow and coarse-grained. What would be the best design for your grid?
We’re currently evalutating several datagrids to augment/replace the one we’re using. Any guidance/suggestions would be very helpful; we would be using the full version along with a support contract with whomever we end up with.
Imported from legacy forums. Posted by Oren (had 496 views)User (Old forums)MemberSeptember 5, 2007 at 8:18 amPost count: 23064
I should also mention that this is hierarchical data with at least three levels, and we’ll be getting row updates on all levels. Each grid shouldn’t use very much CPU as a typical usage will have 8-10 grids up on screen at a time.
Imported from legacy forums. Posted by Oren (had 221 views)Xceed SupportMemberSeptember 5, 2007 at 11:14 amPost count: 5658
There are no particular samples / whitepaper on how to use the DataGridControl in such particular context. However, there are bits of information that could prove useful for you.
One of the advantage of using the DataGridControl in an environment where data changes often is that the DataGridControl only creates and maintain “containers” for actually displayed data. Therefore, you only “pay” the cost of the update for the data that is currently displayed ( not for the whole data set ).
We also take benefit of the WPF DataBinding engine as much as we can. Meaning that if you build an OM composed of DependencyObject with DependencyProperty ( instead of say: XML data or CLR objects with CLR properties ), you are likely to shave off some microseconds here and there.
Since you have frequent updates in your data set, I could also suggest using a data source that either does not implement IBindingList or if you need the insertion capabilities of the IBindingList interface, make sure that the ListChanged event is not raised too often ( with ListChangedType = ItemChanged ). Effectively, if your data items are DependencyObjects, the IBindingList.ListChanged ( ListChangedTye = ItemChanged) will introduce redundancy in the change notification mechanism.
If you need further details, do not hesitate to post back…
For more information on Vanguard Licensing ( “full” version + support ), you can contact Charles at email@example.com
Imported from legacy forums. Posted by Marcus [Xceed] (had 244 views)Xceed SupportMemberSeptember 5, 2007 at 11:20 amPost count: 5658
Hierarchical Master/Detail is currently not supported (in version 1.2 of the product)…
However, this feature is currently on top of our list for the next product version. I invite you to speak with Charles for more details concerning this.
Imported from legacy forums. Posted by Marcus [Xceed] (had 249 views)User (Old forums)MemberSeptember 5, 2007 at 11:47 amPost count: 23064
Thanks, I’ll call in a few minutes — for this case, the columns of the master/detail are the same; they’re just a different type of row with a 1-many relation….
Imported from legacy forums. Posted by Oren (had 4212 views)
- You must be logged in to reply to this topic.