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; }); }