      */
     public function set selectedDate(value:Date):void
     {
+        if (ObjectUtil.dateCompare(_selectedDate, value) == 0) 
+            return;
+
         selectedDateSet = true;
         _selectedDate = scrubTimeValue(value) as Date;
         updateDateFiller = true;
         selectedDateChanged = true;
 
         invalidateProperties();
+
+        // Trigger bindings to 'selectedData'.
+        dispatchEvent(new Event("selectedDateChanged"));
+       
+        dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));    
     }
 
     //----------------------------------

        // we close the dropdown.
        if (!inKeyDown)
            displayDropdown(false);

        if (_selectedDate)
            dateFiller(_selectedDate);

        {
            selectedDateChanged = false;
            dropdown.selectedDate = _selectedDate;
        }

        if (showTodayChanged)
