private void DatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
        {
            DatePicker dP = (DatePicker)sender;

            //format the selected date depending on the underlying data source
            //
            string date = QueryDateHelper.Format(dP.SelectedDate.Value, _dataSource);

            if (dP.Name == "ExpressionDatePicker")
            {
                AddText(date);
            }
        }
        /// <summary>
        /// If the feature layer contains fields of type Date, runs a sequence of test queries to determine
        /// the date format required by the underlying data source.
        /// </summary>
        private void SetupDateFormat()
        {
            if (QueryProperties.SubLayerDescription.Fields == null)
            {
                return;
            }

            SubLayerField dateField = null;

            foreach (SubLayerField field in QueryProperties.SubLayerDescription.Fields)
            {
                if (field.Type == "esriFieldTypeDate")
                {
                    dateField = field;
                    break;
                }
            }

            if (dateField == null)
            {
                return;
            }

            //get the data source type from the QueryDateHelper by running a series of test queries against the dateField
            //
            QueryDateHelper.GetDataSource(QueryProperties.SubLayerDescription.Url, QueryProperties.SubLayerDescription.RequiresProxy, dateField, (object sender, DataSourceEventArgs e) =>
            {
                //query succeeded -> cache the datasource so the correctly formatted dates can be
                //generated when the expression is created
                //
                if (_dataSource == null)
                {
                    _dataSource = e.DataSource;
                }
                else
                {
                    //if data source has already been set check if this one has higher priority
                    //if yes - replace
                    //
                    List <string> supportedDS = new List <string>(QueryDateHelper.SupportedDataSources);
                    if (supportedDS.IndexOf(e.DataSource) < supportedDS.IndexOf(_dataSource))
                    {
                        _dataSource = e.DataSource;
                    }
                }

                ExpressionDatePickerButton.IsEnabled = true;
            });
        }