public override void Work(DevMarkerChart owner, NotifyCollectionChangedEventArgs e) { this.owner = owner; if (!owner.IsReadyToDrawMarkers()) { return; } int newStartingIndex = e.NewStartingIndex; if (newStartingIndex == owner.lastIndex) { AddNewItems(e); } else if (owner.startIndex <= newStartingIndex && newStartingIndex <= owner.lastIndex) { foreach (UIElement child in owner.CurrentItemsPanel.Children) { var index = GetIndex(child); if (index >= newStartingIndex) { SetIndex(child, index + 1); } } AddNewItems(e); } }
public override void Work(DevMarkerChart owner, NotifyCollectionChangedEventArgs e) { int oldStartingIndex = e.OldStartingIndex; int oldEndIndex = oldStartingIndex + e.OldItems.Count; var children = new UIElement[owner.CurrentItemsPanel.Children.Count]; owner.CurrentItemsPanel.Children.CopyTo(children, 0); foreach (UIElement item in children) { var index = GetIndex(item); if (oldStartingIndex <= index && index < oldEndIndex) { owner.CurrentItemsPanel.Children.Remove(item); } } int oldCount = e.OldItems.Count; foreach (UIElement item in owner.CurrentItemsPanel.Children) { var index = GetIndex(item); if (index >= oldEndIndex) { SetIndex(item, index - oldCount); } } }
private static void OnMarkerBuilderChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { DevMarkerChart owner = (DevMarkerChart)d; owner.OnMarkerGeneratorChanged((MarkerGenerator)e.OldValue, (MarkerGenerator)e.NewValue); owner.MarkerBuilderChanged.Raise(owner, e.OldValue, e.NewValue); }
public override void Work(DevMarkerChart owner, NotifyCollectionChangedEventArgs e) { //var markerGenerator = owner.markerGenerator; //if (markerGenerator != null) //{ // foreach (FrameworkElement marker in owner.CurrentItemsPanel.Children) // { // owner.RemoveCommonBindings(marker); // markerGenerator.Release(marker); // } //} //owner.CurrentItemsPanel.Children.Clear(); owner.DrawAllMarkers(true); }
public abstract void Work(DevMarkerChart owner, NotifyCollectionChangedEventArgs e);
private static void OnMarkerBuilderTemplateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { DevMarkerChart owner = (DevMarkerChart)d; // owner.MarkerBuilder = new TemplateMarkerGenerator((DataTemplate)e.NewValue); }
private static void OnMarkerTemplateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { DevMarkerChart owner = (DevMarkerChart)d; owner.OnMarkerTemplateChanged((DataTemplate)e.NewValue, (DataTemplate)e.OldValue); }