public override void Refresh()
 {
     DrillDownLevel      = 0;
     _drillDownPathQueue = new Queue <string>(DrillDownPath.Split(','));
     GroupNames          = _drillDownPathQueue.Count > 1 ? DrillDownPath.Split(',').ToList() : GroupNames;
     _currentPath        = _drillDownPathQueue.Dequeue();
     this.CurrentItems   = new CollectionView(SourceCollection, _currentPath, this.AggregateOn, this.AggregateType, GroupNames[0]);
     History             = new Stack <DrillDownHistory>();
     OnAfterDrill(_currentPath, DrillDownLevel, true);
 }
        public override void Refresh()
        {
            DrillDownLevel      = 0;
            History             = new Stack <DrillDownHistory>();
            _drillDownPathQueue = new Queue <string>(DrillDownPath.Split(','));
            GroupNames          = _drillDownPathQueue.Count > 1 ? DrillDownPath.Split(',').ToList() : GroupNames;

            var view = CollectionViewSource.GetDefaultView(SourceCollection);

            view.GroupDescriptions.Clear();
            foreach (var path in _drillDownPathQueue)
            {
                view.GroupDescriptions.Add(new PropertyGroupDescription(path));
            }
            _currentPath = _drillDownPathQueue.Dequeue();
            Current      = new CollectionViewWrapper {
                Name = GroupNames[0], View = view
            };
            ChartView = view.Groups.ToList();
            OnAfterDrill(_currentPath, DrillDownLevel, true);
        }