public override void Refresh(IPlatformDrawer platform, Vector2 position, bool hardRefresh = true) { base.Refresh(platform, position, hardRefresh); // Eventually it will all be viewmodels if (DiagramViewModel == null) { return; } Dictionary <IGraphFilter, Vector2> dictionary = new Dictionary <IGraphFilter, Vector2>(); var first = true; foreach (var filter in new [] { DiagramViewModel.GraphData.RootFilter }.Concat(this.DiagramViewModel.GraphData.GetFilterPath()).Reverse()) { var name = first ? filter.Name : "< " + filter.Name; dictionary.Add(filter, platform.CalculateTextSize(name, first ? CachedStyles.GraphTitleLabel : CachedStyles.ItemTextEditingStyle)); first = false; } _cachedPaths = dictionary; Children.Clear(); DiagramViewModel.Load(hardRefresh); Children.Add(SelectionRectHandler); Dirty = true; //_cachedChildren = Children.OrderBy(p => p.ZOrder).ToArray(); }