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());
                    }
                }
            }
        }
Beispiel #2
0
 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);
        }