Version 2.0.0.0 was released on May 29th, 2007.
Added a TryParse method to the Duration and Period classes.
Added a UtcDateTime property to BaseDateTimeProperty to get or set the value as a date/time value expressed in Universal Time.
Added the EWSoftware.PDI.Binding namespace that contains a generic base collection class along with some supporting classes.
All collections in the library now derive from a generic base class (Collection<T> or ExtendedBindingList<T>). ExtendedBindingList<T> is bindable and contains several utility methods for searching and sorting the collection using predicates.
Fixed vCard 2.1 and vCalendar 1.0 properties so that they did not escape commas unnecessarily.
Added a topic to the help file to clarify the various time formats used by the calendar objects and how to work with them.
Added a topic to the help file to describe the data binding capabilities of the ExtendedBindingList<T> class.
Updated the time zone information file used by the web demos to reflect recent changes in Daylight Saving Time.
Child properties in FreeBusyProperty, ObservanceRule, VAlarm, VCard, VEvent, VFreeBusy, VJournal, VTimeZone, and VToDo are now bindable as well. In order to bind to a child property, separate its name from the parent property using an underscore (i.e. Name_SortableName, Organization_Name, LastRevision_DateTimeValue, TimeZoneId_Value). The demo applications contain examples. The child property binding mechanism can be extended to other classes at runtime by adding their type to the description provider by passing the type to the static ChildPropertyTypeDescriptionProvider.Add method.
Breaking Change: The TimeZoneIdChangedEventHandler delegate has been removed. Use the generic form EventHandler<TimeZoneIdChangedEventArgs> instead.
Breaking Change: The use of System.Collections.Specialized.StringCollection has been replaced with the use of EWSoftware.PDI.StringCollection which may cause some conflicts. Update any affected code to use the new PDI library string collection class instead.
The recurrence pattern control now renders a fully client-side DHTML implementation of the recurrence pattern editor with no unnecessary post backs.
Breaking Change: The RecurrencePattern.ShowTimePatterns property has been replaced by the MaximumPattern property. This lets you specify a RecurFrequency option that determines the maximum pattern type that will be editable.
Breaking Change: The RecurrencePattern.SetFocus method had been renamed Focus to match the .NET 2.0 method in the standard web controls.
Breaking Change: The RecurrencePattern.ShowTimePatterns and RecurrencePropertiesDlg.ShowTimePatterns properties have been replaced by the MaximumPattern property. This lets you specify a RecurFrequency option that determines the maximum pattern type that will be editable.
Breaking Change: The BrowseControl has been rewritten to utilize standard data binding using a BindingSource. This greatly simplifies the code needed to edit collection items. If you currently make use of this control to edit the PDI collections. See the demos for examples on how to use the updated browse control.
The demos have been updated to make use of the new features available in the .NET 2.0 version of the library. Much of the code related to sorting and binding has been eliminated and those operations have been greatly simplified. The collections now contain built-in generic search and sort methods and they also contain improved data binding support.