private void cmbCategory_TextChanged(object sender, EventArgs e) { string strText = this.cmbCategory.Text.Trim(); this.LstFields.Items.Clear(); if (this.HashCategories.Contains(strText)) { GroupDescriptionCollection allFieldColumns = this.HashCategories[strText] as GroupDescriptionCollection; foreach (GroupDescription groupDescription in allFieldColumns) { this.LstFields.Items.Add(groupDescription.Copy()); } strCategory = strText; } else if (this.HashCategories.Contains(strCategory)) { GroupDescriptionCollection allFieldColumns = this.HashCategories[strCategory] as GroupDescriptionCollection; foreach (GroupDescription groupDescription in allFieldColumns) { if (groupDescription.ToString().ToLower().StartsWith(strText.ToLower())) { this.LstFields.Items.Add(groupDescription.Copy()); } } } }
public ViewModel() { this.ResourceTypeSource = GenerateResourceTypeCollection(); this.GroupDescriptionsSource = new GroupDescriptionCollection { new DateGroupDescription(), new ResourceGroupDescription { ResourceType = "Location" } }; this.Appointments = GenerateAppointments(); this.Meetings = new ObservableCollection <Meeting> { new Meeting { ID = 1, Name = "Meeting 1" }, new Meeting { ID = 2, Name = "Meeting 2" }, new Meeting { ID = 3, Name = "Meeting 3" }, new Meeting { ID = 4, Name = "Meeting 4" }, new Meeting { ID = 5, Name = "Meeting 5" } }; }
protected DataGridDetailDescription() { m_detailDescriptions = new DataGridDetailDescriptionCollection(); m_detailDescriptions.CollectionChanged += this.OnDetailDescriptionsCollectionChanged; m_itemProperties = new DataGridItemPropertyCollection(); m_itemProperties.CollectionChanged += this.OnItemPropertiesCollectionChanged; m_groupDescriptions = new GroupDescriptionCollection(); m_sortDescriptions = new DataGridSortDescriptionCollection(); m_statFunctions = new StatFunctionCollection(); m_autoFilterValues = new ReadOnlyDictionary<string, IList>(); m_autoFilteredItems = new ObservableCollection<DataGridItemPropertyBase>(); m_registeredFieldNamesToAutoFilterValues = new Dictionary<string, INotifyCollectionChanged>(); m_registeredAutoFilterValuesToFieldNames = new Dictionary<INotifyCollectionChanged, string>(); this.AutoCreateDetailDescriptions = true; this.AutoCreateItemProperties = true; this.DefaultCalculateDistinctValues = true; }
private void SynchronizeWithDetailDescription( DataGridDetailDescription detailDescription ) { if( detailDescription != m_detailDescription ) { this.DetachFromDetailDescription(); m_shouldCreateColumns = true; m_detailDescription = detailDescription; DataGridSortDescriptionCollection dataGridSortDescriptionCollection = null; if( detailDescription != null ) { //register to the collectionchanged of the DataGridDetailDescription collection of the detailDescription matching this one. dataGridSortDescriptionCollection = detailDescription.DataGridSortDescriptions; m_groupDescriptions = detailDescription.GroupDescriptions; CollectionChangedEventManager.AddListener( detailDescription.ItemProperties, this ); CollectionChangedEventManager.AddListener( detailDescription.DetailDescriptions, this ); } else { dataGridSortDescriptionCollection = new DataGridSortDescriptionCollection(); m_groupDescriptions = new GroupDescriptionCollection(); } m_sortDescriptions = dataGridSortDescriptionCollection; m_sortDescriptionsSyncContext = null; //clear it, if it was ever set! //This update is required since there might be some columns in the Columns collection after the XAML parsing of the DetailConfiguration DataGridContext.SynchronizeSortProperties( dataGridSortDescriptionCollection.SyncContext, m_sortDescriptions, this.Columns ); //This update is required since we want the GroupLevelDescriptions to be created if DetailConfiguration in XAML //contains GroupDescriptions DataGridContext.UpdateGroupLevelDescriptions( this.GroupLevelDescriptions, new NotifyCollectionChangedEventArgs( NotifyCollectionChangedAction.Reset ), this.GroupDescriptions, this.Columns ); CollectionChangedEventManager.AddListener( m_sortDescriptions, this ); CollectionChangedEventManager.AddListener( m_groupDescriptions, this ); if( detailDescription != null ) { if( this.ReadLocalValue( DetailConfiguration.TitleProperty ) == DependencyProperty.UnsetValue ) { if( detailDescription.Title == null ) { this.Title = detailDescription.RelationName; } else { this.Title = detailDescription.Title; } } if( ( this.ReadLocalValue( DetailConfiguration.TitleTemplateProperty ) == DependencyProperty.UnsetValue ) && ( detailDescription.TitleTemplate != null ) ) { this.TitleTemplate = detailDescription.TitleTemplate; } DetailConfiguration.SynchronizeDetailConfigurations( detailDescription.DetailDescriptions, this.DetailConfigurations, this.AutoCreateDetailConfigurations, this.AutoCreateForeignKeyConfigurations, this.AutoRemoveColumnsAndDetailConfigurations ); } } if( detailDescription != null ) { ForeignKeyConfiguration.UpdateColumnsForeignKeyConfigurationsFromDataGridCollectionView( this.Columns.FieldNameToColumnDictionary, detailDescription.ItemProperties, this.AutoCreateForeignKeyConfigurations ); } }
private void InitList(string initField) { this.LstFields.Items.Clear(); HashCategories.Clear(); this.cmbCategory.Visible = true; this.cmbCategory.Items.Clear(); DataSet backDataSource = Webb.Reports.DataProvider.VideoPlayBackManager.DataSource; Webb.Reports.DataProvider.WebbDataProvider PublicDataProvider = Webb.Reports.DataProvider.VideoPlayBackManager.PublicDBProvider; if (PublicDataProvider != null && PublicDataProvider.DBSourceConfig != null && PublicDataProvider.DBSourceConfig.WebbDBType == WebbDBTypes.CoachCRM && backDataSource != null && backDataSource.Tables.Count > 1) { #region add categoryies from Table List <string> categories = new List <string>(); string strCategoriesName = backDataSource.Tables[0].TableName; categories.Add(strCategoriesName); GroupDescriptionCollection fieldsInAllcategories = new GroupDescriptionCollection(); HashCategories.Add(strCategoriesName, fieldsInAllcategories); foreach (DataRow dr in backDataSource.Tables[1].Rows) { if (dr["CurrentField"] == null || (dr["CurrentField"] is System.DBNull)) { continue; } string strTableName = dr["Category"].ToString(); string strField = dr["CurrentField"].ToString(); string strHeader = dr["DefaultHeader"].ToString(); string TableNameId = strTableName + "ID"; GroupDescriptionCollection fieldList; if (HashCategories.Contains(strTableName)) { fieldList = (GroupDescriptionCollection)HashCategories[strTableName]; if (!fieldList.Contains(strField)) { fieldList.Add(strField, strHeader); } } else { fieldList = new GroupDescriptionCollection(); fieldList.Add(strField, strHeader); categories.Add(strTableName); HashCategories.Add(strTableName, fieldList); } if (!fieldList.Contains(TableNameId)) { fieldList.Add(TableNameId, TableNameId); } if (!fieldsInAllcategories.Contains(strField)) { fieldsInAllcategories.Add(strField, strHeader); } if (!fieldsInAllcategories.Contains(TableNameId)) { fieldsInAllcategories.Add(TableNameId, TableNameId); } } #endregion this.cmbCategory.Text = string.Empty; foreach (string strKey in categories) { this.cmbCategory.Items.Add(strKey); } this.cmbCategory.SelectedIndex = 0; } else { #region Advantage /Victory Data GroupDescriptionCollection allGroupDescription = new GroupDescriptionCollection(); foreach (string strfield in Webb.Data.PublicDBFieldConverter.AvialableFields) { //this.LstFields.Items.Add(new GroupDescription(strfield, strfield)); allGroupDescription.Add(new GroupDescription(strfield, strfield)); } strCategory = "[All Avaliable Fields]"; HashCategories.Add(strCategory, allGroupDescription); this.cmbCategory.Items.Add(strCategory); this.cmbCategory.SelectedIndex = 0; #endregion } this.LstFields.SelectedIndex = this.LstFields.FindString(initField); }