private static void OnDataGridCollectionViewSourceDependencyPropertyChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
        {
            DataGridCollectionViewSource source = o as DataGridCollectionViewSource;

            if (source == null)
            {
                return;
            }

            source.AdviseForwardedPropertyChanged();
        }
Example #2
0
        internal override DataGridCollectionViewBase EnsureDataGridCollectionViewBaseCore()
        {
            DataGridCollectionViewSource parentSource = this.ParentSource as DataGridCollectionViewSource;
            object             source             = parentSource.OriginalSource;
            Type               itemType           = parentSource.ItemType;
            DataSourceProvider dataSourceProvider = source as DataSourceProvider;

            if (dataSourceProvider != m_dataSourceProvider)
            {
                if (m_dataSourceProvider != null)
                {
                    DataChangedEventManager.RemoveListener(m_dataSourceProvider, this);
                }

                m_dataSourceProvider = dataSourceProvider;

                if (m_dataSourceProvider != null)
                {
                    DataChangedEventManager.AddListener(m_dataSourceProvider, this);
                    m_dataSourceProvider.InitialLoad();
                }
            }

            if (dataSourceProvider != null)
            {
                source = dataSourceProvider.Data;
            }

            IListSource listSource = source as IListSource;

            if (listSource != null)
            {
                source = listSource.GetList();
            }

            if (source == null)
            {
                return(null);
            }

            IEnumerable enumerableSource = source as IEnumerable;

            Debug.Assert(enumerableSource != null);

            DataGridCollectionViewBase currentView = this.CurrentView;

            if ((currentView != null) &&
                (currentView.SourceCollection == enumerableSource) &&
                (currentView.DesiredItemType == itemType))
            {
                // No changes.
                return(currentView);
            }

            return(new DataGridCollectionView(
                       enumerableSource,
                       itemType,
                       parentSource.AutoCreateItemProperties,
                       parentSource.AutoCreateDetailDescriptions,
                       parentSource.AutoCreateForeignKeyDescriptions));
        }
Example #3
0
 public DataGridCollectionViewDataProvider(DataGridCollectionViewSource parentSource)
     : base(parentSource)
 {
 }