What's new in Dapfor .Net Grid V2.9.2?
- Added column filter serialization.
- Reengineered grid designer introducing intuitive and convenient user interface.
- Significantly improved grid performance with selection large data volumes.
- Overall performance improvements.
What's new in Dapfor .Net Grid V2.8.0?
- RTL (right to left) support in grid, editors, context menus, tooltips and reports
- Merge and combine columns in groups with a common header
- Move columns, change column size and sort
- Full customization of header appearance including images and background color
- Added Grid.Nodes.Insert() method for inserting data in any position
- Added Row.Insert() method for inserting data at any hierarchical level
- Foreground color blinking method was added
What's new in Dapfor .Net Grid V2.6.2?
- Threading model improvements. IDispatcher is no longer shared among all grids. Instead, it uses an individual instances which means you can create grids in different message loops
- Added a Grid(IDispatcher) constructor to specify an arbitrary model of cross thread synchronization
- Fixed bug when the grid connected to IBindingList and didn't automatically delete rows in groups
- Fixed bug where the grid crashed when a user added new rows via a graphical interface while sorting
What's new in Dapfor .Net Grid V2.6?
- Added a threadsafe implementation of IBindinList - Dapfor.Net.Data.ThreadSafeBindingList. It protectes internal data and fires IBindingList.ListChanged notifications without acquiring a synchronization object to prevent from the deadlock.
- Performance improvements while receiving updates from IBindinList.
- Added an optimization, when IBindingList connected to a grid could notify subscribers via IBindingList.ListChanged event if user editing data in grid cell left the data unchanged.
- Support of various themes including XP/Vista/Windows 7 themes.
- Added feature of saving and restoring grid layout to XML file in design mode.
- Column.Sortable behavior has been changed. This property no longer blocks column programmatic sorting, however it prevents user from sorting columns by clicking a header.
- Behavior of Grid.Highlighting.Enabled property has been changed. Now, if this property is set to false, it doesn’t prevent cell highlighting with Cell.Highlight() method. However, it blocks automated highlighting upon notificaton via INotifyPropertyChanged interface.
- A feature of deleting content upon pressing DEL key has been added. This feature can be enabled with Grid.Navigation.RemoveSelectionOnDelete property.
- Added new examples of theme use and display of summaries in columns or docked rows on various hierarchical levels.
- Editor background color is now consistent with background color of the edited cell.
- Added a support for composite objects in .Net Inspector
What's new in Dapfor .Net Grid V2.5.2?
- Added ICustomSort interface enabling to customize row sorting in .Net Grid.
- Enabled Control.DragEnter and Control.DragDrop events.
- Added X, Y and KeyState properties to the DragContentEventArgs class.
- Changed public visibility of the ColumnConfiguratorForm class.
- Added Grid.EndEdit() method to stop cell editing before closing a modal window.
- .Net Grid doesn't throw MDA (managed debugging assistant) exceptions any more.
What's new in Dapfor .Net Grid V2.5.1?
- Performance improvements
- Small bug fixes
What's new in Dapfor .Net Grid V2.5.0?
- .Net Grid now supports data validation, where the programmer may specify whether a user value is valid and pick one of the possible actions - cancel editing results, apply new value, ask user to enter a new value, display an error icon or switch to editing a new cell.
- Navigation between editors by pressing Enter, Tab, Shift+Tab has been added.
- Grid interaction with data sources has been completely refactored. As the result, the grid can now work in thread-safe mode with different data sources including IList, IBindingList, IListSource and with BindingSource and CurrencyManager.
- Ability to bind any row to data sources via Row.DataSource property has been added.
- It is now possible to bind .Net Grid to multiple data sources simultaneously via IListSource interface (e.g. to multiple IBindingList at the same time).
- Data binding can now be combined with Grid.Rows.Add() / Row.Add() methods.
- Ability to build a hierarchy when data objects in one or several properties return collections of other objects has been added.
- It is now possible to create a hierarchy with multiple IBindingList containing objects of different types.
- It is now possible to subscribe to IBindingList events and to objects in IBindingList collections if they implement INotifyPropertyChanged interface. Their thread-safe processing, sorting, filtering, grouping and painting are maintained.
- Conditional binding feature has been added. With this feature the grid asks how the data should be added. For example, if a data object contains a collection of other objects, the programmer can add its collection instead of the object itself, thus missing a whole hierarchy level while hierarchical binding.
Drag & drop
- A feature of dragging data within a grid and between grids has been added.
- It is now possible to move data on the same hierarchy level and to perform hierarchical dragging of rows while preserving state and hierarchy of dragged objects.
- Full customization of drag & drop process supporting choice of content and various effects, place of insertion and hierarchy is now available.
- Features for dragging and dropping data to external applications (Excel, Word.) and importing data from external applications providing an interface to deserialize data and insertion methods have been added.
- Intuitive automated scrolling where needed during data dragging has been added.
- The grid now supports a new method of user-friendly data selection. When the user moves the mouse with left button pressed, the grid displays a semi-transparent area, and all rows within this area become selected. Various effects are supported when Ctrl or Shift keys are pressed
Other new features of the grid
- A new Header.StretchMode property enables stretch widths of all the columns so that they evenly occupy the available space.
- Column configurator has been changed.
- The design mode has been completely revamped. Now it is much more programmer-friendly and makes its work much simpler.
- Grid.RowExpanding event has been added.
- It is now possible to adjust the height of the group panel.
- Memory consumption while binding to data sources has been reduced and performance has been increased.
- Memory consumption has been reduced by 20% for operations with simple data including objects of arbitrary classes.
- +70 new data binding tests for have been added.
- New RoundButton control has been added.
The following bugs have been fixed:
- Loss of focus when editing data in a control above a cell.
- Many data binding errors have been fixed.
What's new in Dapfor .Net Grid V2.4.0?
The new release includes Composite Object support which significantly reduces and simplifies application code and enables a more complete separation of the business logic layer from data presentation layer in the GUI. Composite Objects may have properties returning primitive types and references to other objects. When binding to such objects, the grid can display information from the Composite Objects and from referenced objects. The grid binds to the properties and doesn't distinguish between data sources when displaying data. Therefore, there is no need to create intermediate classes or containers aggregating information from different objects for future display in the grid. The grid also supports event-driven models which enables the grid to automatically sort, filter group and highlight data received from Composite Objects.
What's new in Dapfor .Net Grid V2.3.2?
- Added Grid.DataConnection.HandleCurrentChangedEvent property to handle CurrencyManager.Current rows.
- When Grid is attached to BindingList, it can show incorrect row number - fixed
- CLR 2.0 and higher
- Written entirely in managed C#
- Comprehensive documentation with many samples, integrated with Visual Studio
- Design time integration
- Binding to IList, IBindingList, IListSource and also to any ADO.NET DataSet, DataTable, DataView, or DataViewManager
- Hierarchical binding to data objects if they return collections of other objects in one or several properties
- Simultaneous binding to multiple data sources
- Conditional binding supporting any hierarchies and able to bypass hierarchical levels during binding
- Connection to data sources in Rows
- Binding to composite objects
- Simultaneous data binding and adding objects one by one at any hierarchy level
- Sharing the same objects between different grids
- Binding to objects implementing INotifyPropertyChanged interface
- Non-event model enables insertion of data of different types (user defined classes, IEnumerable<T>,IList<T>, IDictionary<string, object> etc.) one by one to any level of the grid hierarchy
Supported data types:
- Programmer-defined classes including those that implement the INotifyPropertyChanged interface
- object, string, IList<> can also be added one by one on any hierarchical level
- Composite objects
- Objects with hierarchical fields
- Binding to IList, IBindingList, IListSource
Real-time features (data processing, changing in real time):
- Real-time data updating
- Real-time data highlighting
- Real-time data sorting
- Real-time data filtering
- Real-time data grouping
- Thread-safe data binding
- Synchronous and asynchronous data processing modes
- Thread-safe data adding, removing and updating
- Thread-safe sorting, filtering and grouping
- Clear and easy to use hierarchical architecture. Ability to use single or multiple headers without changing the component.
- Any hierarchy can be built easily
- Semi-transparent selection that doesn't obscure row and cell background
- Highlighting cells with any color for the specified time interval
- Cell editing with UITypeEditor. Ability to assign any Windows Forms control as a cell editor.
- Data grouping on any hierarchical level
- Any combination of data on each hierarchical level.
- Drag & drop, data export to Excel, import from Excel
- Cell editing validation
- Full customization of painting, editing, filtering
- Docked rows
- Fixed columns
- Graphical filters in columns
- XML and binary serialization
- Sharing same data between multiple grids
- Advanced data formatting and parsing
- Accurate and precise reaction on user input
- Real-time scrolling
- Simple and convenient interface to redraw various elements such as rows, cells and columns...
- Display, edit, and work with bound or unbound data.
- Bound and unbound columns.
- Ability to hide the (+/-) symbol.
- Ability to pre-generate a list of columns from a type.
- Every grid row has its own tag property for custom user data.
Nice look, gradient drawing, scalable images, transparency.
- 370+ NUnit tests, covering all major features of the .Net Grid
- Coverage of code with tests: various algorithms (sorting, grouping, etc) > 65%, data level > 65%, threading > 80%.
- QA team working on the quality of the products
- Bugs discovered by QA team or by clients are systematically covered by new NUnit tests.
- Diagnostics tools are available not just to the team - programmers can use them in development of their applications.
- High insertion rate: > 100 000 rows/second.
- High removal rate: > 600 000 rows/second.
- High grouping rate: > 60 000 rows/second.
- High real-time regrouping rate: > 10 000 rows in a grid of 5 000 rows per second.
- High real-time filtering rate: > 7 000 rows in a grid of 5 000 rows per second.
- Productive sort algorithms: > 5 000 sorts in a grid of 5 000 rows per second.
- High updating speed with highlighting > 50 000 cells/second in a grid of 5 000 rows.
- Low memory consumption: The grid of 100 000 rows will consume < 16 MB.
- A single assembly Dapfor.Net.dll is needed for application deployment.
- Compatibility with ILMerge utility enables merger of multiple assemblies into a single .Net assembly and deployment of the application as a single executable.