Wednesday, June 06, 2007
Recent Grid Enhancements
This upcoming build of Milos has some enhancements to all our grid controls that I know some of you have been waiting for:
- The grid now supports resorting of bound sortable collections.
- The grid now automatically (and optionally) remeasures grid row heights when columns are resized. (This is only important in scenarios where grid rows have dynamic heights).
- The ListBase class (the "mother of all Milos grids") had a problem with owner drawn rows that used variable (non-standard) row-heights. In some special scenario with very few rows shown, scrolling the grid via the mouse wheel caused an exception to be thrown. This has been fixed.
- As listed in the previous post, there were a number of databinding enhancements.
- Some people reported problems using the ScrollBottom() method. This has been fixed.
- The grid now provides better access to the grid row collection. The collection now is enumerable and strongly typed. Both the column and row collections have also been performance optimized.
- In some rare scenarios, reassigning a data source of the grid caused row selections to go all out of whack. This has been fixed.
In general, quite a few optimizations have been applied to the grid.
Note that these things apply to all Milos grids, including ListBase, the OfficeGrid, the TouchGrid, and even controls such as the list of binary document attachments (among others).
Posted @ 4:17 PM by Egger, Markus (email@example.com) -
Wednesday, June 06, 2007
More Databinding Stuff
Today or tomorrow, we will have a new Milos build. It includes a number of improvements (and some fixes) for WinForms databinding. (Some of which have been discussed before).
Here is a list of a few other things that are included:
- Both our listbox and combobox classes had some issues binding to data in certain scenarios (basically, our enhancements only handled certain scenarios, but people were left with basic .NET functionality in others). In particular, some scenarios that bound these controls to DataSets or other collections had refresh problems. Enhancements have been made to handle those scenarios properly.
- There was a problem with the Office Toolbar control that caused people to tab out of the active control before they hit save, otherwise the last edited control was not bound properly. This is fundamentally a .NET issue, so it may still exist in interfaces that do not use these controls (mainly things like third party components), but it has been fixed for Milos controls (Office controls).
- The Milos date dropdown control (office look and feel) had a few data binding bugs (no way to blame this one on MS or a third party, I am afraid :-)). These are now fixed.
- This is not related to data binding, but it is worth mentioning that this control now also supports a more lenient data entry. For instance "7/5" is interpreted as July 5th of the current year. (This also works culture specific, so "7.5." in a German app would be interpreted as May 7th of the current year).
- Standard Milos WinForms radio buttons were not bindable before. They have been enhanced to support data binding.
- While we were at it, we also added a radio button group container control that makes it quite a bit easier to use and bind radio buttons.
- All Milos grids have been enhanced quite a bit. Some changes are databinding related (the others I will discuss separately):
- In the past, editable grids could only bind to data types that matched the controls the column used. So a textbox based edit column could only bind to string properties/fields. This mechanism has now been enhanced to allow automatic parsing for byte, int, decimal, float, double, and datetime fields.
- Grids now support re-sorting when bound to sortable collections.
- There also was an issue with bound editable controls that were scrolled horizontally (causing inaccurate placement of the editable areas). This has been fixed.
Not quite databinding, but still related: Milos data edit classes have been cleaned up a bit and optimized. We also added quite a few convenience methods that make it easier to reload data and the like.
Posted @ 4:08 PM by Egger, Markus (firstname.lastname@example.org) -