private static void OnDataGridCollectionViewSourceDependencyPropertyChanged(DependencyObject o, DependencyPropertyChangedEventArgs e) { DataGridCollectionViewSource source = o as DataGridCollectionViewSource; if (source == null) { return; } source.AdviseForwardedPropertyChanged(); }
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)); }
public DataGridCollectionViewDataProvider(DataGridCollectionViewSource parentSource) : base(parentSource) { }