Grids of different vendors have almost the same performance when working with static data, i.e. insertion, deletion and data sorting speed remain unchanged. In this field Dapfor’s products have similar characteristics to competitor products. However, with dynamic data Dapfor’s products are unmatched. Performance of dynamic data sorting, filtering and grouping is hundreds times higher than that of competitor grids. A good example is trading application that demonstrates low processor load upon real-time data modification.
An important feature of .Net Grid is that it ensures thread safety when working with data modified by different threads. In other words, with data binding (when the grid is bound to IBindingList or unbound objects implementing INotifyPropertyChanged interface), all changes of these objects or object collections and IBindingList.ListChagned or INotifyPropertyChanged.PropertyChanged interfaces may come from any thread. Synchronization with graphical thread is performed via grid tools. This is a significant improvement of MVVM model enabling its use in multi-threaded applications.
Unlike competitor grids, .Net Grid is both a treelist control and a full-featured grid with multiple headers. Work mode can be changed by simply adding or removing a header. Dapfor’s developers always consider component ease of use and try to make API simple and intuitive. A good example of this is data highlighting. Besides, it is sufficient to call Cell.Highlight(TimeSpan, Color) method and the required cell will be highlighted for the specified time interval.
Data binding is mandatory for grids and is a tool for implementing MVVM model of data and presentation separation. This feature is implemented by all vendors in different ways. Data binding implies connections of grids to data collections (mainly to collections that implement IBindingList interface). It’s worth mentioning that IBindingList interface is not hierarchical. Different manufacturers try to find a way to bypass this limitation and to use this collection for building grid hierarchy. This makes the code far more complicated and reduces performance. .Net Grid uses another approach that involves use of multiple IBindingList interfaces at the same time. Besides, .Net Grid has very convenient data binding features that are not available in competitor products:
- Grid binding to multiple IBindingList collections
- IBindingList binding to any Row at any hierarchy level
- Conditional binding enabling full control over the process. It can be used to create new hierarchy levels or to remove whole hierarchy levels when binding grid to data sources.
- Declarative binding that marks object propeties with a special attribute and the grid automatically builds a hierarchy.
- Combining properties of various objects that enable the programmer to avoid creation of wrapper classes exposing properties that should be displayed in the grid and call redirection to actual objects. Look more for composite objects.
- Simultaneous use of any of the above data binding type with unbound objects that can be easily added to the grid at any hierarchy level.
In addition to the above features, .Net Grid has all base features for such components: cell editing, drag & drop, xml serialization and binary streams, semi-transparent selection preserving cell background color, column filters, docked rows, etc.
So, if we have to describe .Net Grid in two words – it’s a component that combines high performance with thread safety and simple and convenient API.
Read more about .Net Grid
.Net Grid Features