diff --git a/AIStudio.Wpf.DiagramApp/Models/DiagramItem.cs b/AIStudio.Wpf.DiagramApp/Models/DiagramItem.cs index 179d432..1b0b6d8 100644 --- a/AIStudio.Wpf.DiagramApp/Models/DiagramItem.cs +++ b/AIStudio.Wpf.DiagramApp/Models/DiagramItem.cs @@ -161,7 +161,7 @@ DesignerItems.OfType() [XmlArray] public List Connections { get; set; } - public void AddItems(IEnumerable selectedDesignerItems) + public void AddItems(IEnumerable selectedDesignerItems) { var items = selectedDesignerItems.OfType().Select(p => p.ToXmlObject()); foreach (var item in items) diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs index 1647c39..9dda7f9 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs @@ -177,7 +177,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels #endregion - protected virtual bool AddVerify(SelectableViewModelBase arg) + protected virtual bool AddVerify(SelectableDesignerItemViewModelBase arg) { return true; } @@ -274,11 +274,6 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels FullyCreatedConnectorInfo sinkConnectorInfo = GetFullConnectorInfo(connection.Id, sinkItem, sinkConnectorOrientation, connection.SinkXRatio, connection.SinkYRatio, connection.SinkInnerPoint); ConnectorViewModel connectionVM = new ConnectorViewModel(viewModel, sourceConnectorInfo, sinkConnectorInfo, connection); - DesignerItemViewModelBase textItem = viewModel.Items.OfType().FirstOrDefault(x => x.ParentId == connection.Id); - if (textItem != null) - { - connectionVM.OutTextItem = textItem; - } viewModel.Items.Add(connectionVM); } @@ -402,7 +397,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels return null; } - private bool ItemsToDeleteHasConnector(List itemsToRemove, ConnectorInfoBase connector) + private bool ItemsToDeleteHasConnector(List itemsToRemove, ConnectorInfoBase connector) { if (connector is FullyCreatedConnectorInfo fully) { @@ -413,7 +408,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels } #region 主题 - public void SetPropertyValue(SelectableViewModelBase selectable, string propertyName) + public void SetPropertyValue(SelectableDesignerItemViewModelBase selectable, string propertyName) { foreach (var item in DiagramViewModel.SelectedItems) { diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs index e26ad92..a0b768f 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs @@ -119,7 +119,7 @@ namespace AIStudio.Wpf.Logical RaisePropertyChanged("Items"); } - protected override bool AddVerify(SelectableViewModelBase arg) + protected override bool AddVerify(SelectableDesignerItemViewModelBase arg) { if (base.AddVerify(arg) == false) return false; diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs index 0793b06..293f6c0 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs @@ -155,7 +155,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels } } - public SelectableViewModelBase SelectedItem + public SelectableDesignerItemViewModelBase SelectedItem { get { diff --git a/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/TabItem1ViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/TabItem1ViewModel.cs index 2a0ba69..18277b5 100644 --- a/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/TabItem1ViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/TabItem1ViewModel.cs @@ -21,7 +21,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Test.ViewModels } - public SelectableViewModelBase SelectedItem + public SelectableDesignerItemViewModelBase SelectedItem { get { diff --git a/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs b/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs index 4571f0d..2466d20 100644 --- a/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs +++ b/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs @@ -227,9 +227,9 @@ namespace AIStudio.Wpf.DiagramDesigner Rect rubberBand = new Rect(startPoint.Value, endPoint.Value); ItemsControl itemsControl = GetParent(typeof(ItemsControl), _designerCanvas); - foreach (SelectableViewModelBase item in vm.Items) + foreach (SelectableDesignerItemViewModelBase item in vm.Items) { - if (item is SelectableViewModelBase) + if (item is SelectableDesignerItemViewModelBase) { DependencyObject container = itemsControl.ItemContainerGenerator.ContainerFromItem(item); diff --git a/AIStudio.Wpf.DiagramDesigner/AttachedProperties/ConnectorStyleProps.cs b/AIStudio.Wpf.DiagramDesigner/AttachedProperties/ConnectorStyleProps.cs deleted file mode 100644 index 1221e2b..0000000 --- a/AIStudio.Wpf.DiagramDesigner/AttachedProperties/ConnectorStyleProps.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows; - -namespace AIStudio.Wpf.DiagramDesigner -{ - public static class ConnectorStyleProps - { - public static readonly DependencyProperty StyleProperty = - DependencyProperty.RegisterAttached("Style", typeof(Style), typeof(ConnectorStyleProps), - new FrameworkPropertyMetadata(default(Style))); - - public static Style GetStyle(DependencyObject d) - { - return (Style)d.GetValue(StyleProperty); - } - - public static void SetStyle(DependencyObject d, Style value) - { - d.SetValue(StyleProperty, value); - } - - } -} diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/BorderResizeThumb.cs b/AIStudio.Wpf.DiagramDesigner/Controls/BorderResizeThumb.cs index c79d70b..814f0ce 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/BorderResizeThumb.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/BorderResizeThumb.cs @@ -16,7 +16,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls /// BindingWidthAndHeight Dependency Property /// public static readonly DependencyProperty ResizeModeProperty = - DependencyProperty.Register("ResizeMode", typeof(ResizeMode), typeof(BorderResizeThumb), + DependencyProperty.Register(nameof(ResizeMode), typeof(ResizeMode), typeof(BorderResizeThumb), new FrameworkPropertyMetadata(ResizeMode.Size)); /// @@ -37,7 +37,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls /// BindingWidthAndHeight Dependency Property /// public static readonly DependencyProperty ResizeElementProperty = - DependencyProperty.Register("ResizeElement", typeof(FrameworkElement), typeof(BorderResizeThumb), + DependencyProperty.Register(nameof(ResizeElement), typeof(FrameworkElement), typeof(BorderResizeThumb), new FrameworkPropertyMetadata(null)); /// diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs b/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs index 2acee08..6d16d6e 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs @@ -57,7 +57,7 @@ namespace AIStudio.Wpf.DiagramDesigner #region GridCellSize public static readonly DependencyProperty GridCellSizeProperty = - DependencyProperty.Register("GridCellSize", + DependencyProperty.Register(nameof(GridCellSize), typeof(Size), typeof(DesignerCanvas), new FrameworkPropertyMetadata(new Size(50, 50), FrameworkPropertyMetadataOptions.AffectsRender)); @@ -73,7 +73,7 @@ namespace AIStudio.Wpf.DiagramDesigner #region ShowGrid public static readonly DependencyProperty ShowGridProperty = - DependencyProperty.Register("ShowGrid", + DependencyProperty.Register(nameof(ShowGrid), typeof(bool), typeof(DesignerCanvas), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); @@ -89,7 +89,7 @@ namespace AIStudio.Wpf.DiagramDesigner #region GridColor public static readonly DependencyProperty GridColorProperty = - DependencyProperty.Register("GridColor", + DependencyProperty.Register(nameof(GridColor), typeof(Color), typeof(DesignerCanvas), new FrameworkPropertyMetadata(Colors.LightGray, FrameworkPropertyMetadataOptions.AffectsRender)); @@ -105,7 +105,7 @@ namespace AIStudio.Wpf.DiagramDesigner #region GridMargin 单位mm public static readonly DependencyProperty GridMarginProperty = - DependencyProperty.Register("GridMargin", + DependencyProperty.Register(nameof(GridMargin), typeof(double), typeof(DesignerCanvas), new FrameworkPropertyMetadata(28d, FrameworkPropertyMetadataOptions.AffectsRender)); @@ -169,7 +169,7 @@ namespace AIStudio.Wpf.DiagramDesigner { StreamResourceInfo sri = Application.GetResourceStream(new Uri("pack://application:,,,/AIStudio.Wpf.DiagramDesigner;component/Images/FormatPainter.cur", UriKind.RelativeOrAbsolute)); this.Cursor = new Cursor(sri.Stream); - foreach (SelectableViewModelBase item in _viewModel.Items) + foreach (SelectableDesignerItemViewModelBase item in _viewModel.Items) { item.IsHitTestVisible = false; } @@ -178,7 +178,7 @@ namespace AIStudio.Wpf.DiagramDesigner private void EnterMove() { this.Cursor = Cursors.SizeAll; - foreach (SelectableViewModelBase item in _viewModel.Items) + foreach (SelectableDesignerItemViewModelBase item in _viewModel.Items) { item.IsHitTestVisible = false; } @@ -187,7 +187,7 @@ namespace AIStudio.Wpf.DiagramDesigner private void ExitCursor() { this.Cursor = Cursors.Arrow; - foreach (SelectableViewModelBase item in _viewModel.Items) + foreach (SelectableDesignerItemViewModelBase item in _viewModel.Items) { item.IsHitTestVisible = true; } @@ -195,7 +195,7 @@ namespace AIStudio.Wpf.DiagramDesigner } #endregion - private void Format(SelectableViewModelBase source, SelectableViewModelBase target) + private void Format(SelectableDesignerItemViewModelBase source, SelectableDesignerItemViewModelBase target) { CopyHelper.CopyPropertyValue(source.ColorViewModel, target.ColorViewModel); CopyHelper.CopyPropertyValue(source.FontViewModel, target.FontViewModel); @@ -253,7 +253,7 @@ namespace AIStudio.Wpf.DiagramDesigner if (_service.DrawModeViewModel.CursorMode == CursorMode.Format) { var element = (e.OriginalSource as FrameworkElement); - if (element.DataContext is SelectableViewModelBase target) + if (element.DataContext is SelectableDesignerItemViewModelBase target) { Format(_viewModel.SelectedItems.FirstOrDefault(), target); return; diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/DragThumb.cs b/AIStudio.Wpf.DiagramDesigner/Controls/DragThumb.cs index 42f67be..811fba2 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/DragThumb.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/DragThumb.cs @@ -18,16 +18,16 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls base.DragCompleted += DragThumb_DragCompleted; } - private List designerItems; + private List designerItems; private void DragThumb_DragStarted(object sender, DragStartedEventArgs e) { - SelectableViewModelBase designerItem = this.DataContext as SelectableViewModelBase; + SelectableDesignerItemViewModelBase designerItem = this.DataContext as SelectableDesignerItemViewModelBase; if (designerItem != null && designerItem.IsSelected) { // we only move DesignerItems - designerItems = designerItem.SelectedItems.ToList(); + designerItems = designerItem.Parent.SelectedItems.ToList(); if (designerItem is ConnectorViewModel connector) { designerItems.Add(connector.SourceConnectorInfo.DataItem); @@ -35,15 +35,11 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls { designerItems.Add(connector.SinkConnectorInfoFully.DataItem); } - if (designerItem.OutTextItem != null) - { - designerItems.Remove(designerItem.OutTextItem);//这个自动计算位置 - } } if (designerItem is PointDesignerItemViewModel) { - designerItems = new List { designerItem }; + designerItems = new List { designerItem }; } foreach (DesignerItemViewModelBase item in designerItems.OfType()) diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/PropertiesView.xaml.cs b/AIStudio.Wpf.DiagramDesigner/Controls/PropertiesView.xaml.cs index 42bcc2f..84ca700 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/PropertiesView.xaml.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/PropertiesView.xaml.cs @@ -23,7 +23,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls { #region SelectedObject - public static readonly DependencyProperty SelectedObjectProperty = DependencyProperty.Register("SelectedObject", typeof(object), typeof(PropertiesView), new UIPropertyMetadata(null, OnSelectedObjectChanged)); + public static readonly DependencyProperty SelectedObjectProperty = DependencyProperty.Register(nameof(SelectedObject), typeof(object), typeof(PropertiesView), new UIPropertyMetadata(null, OnSelectedObjectChanged)); public object SelectedObject { get @@ -57,7 +57,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls #endregion //SelectedObject - public static readonly DependencyProperty NeedBrowsableProperty = DependencyProperty.Register("NeedBrowsable", typeof(bool), typeof(PropertiesView), new UIPropertyMetadata(true)); + public static readonly DependencyProperty NeedBrowsableProperty = DependencyProperty.Register(nameof(NeedBrowsable), typeof(bool), typeof(PropertiesView), new UIPropertyMetadata(true)); public bool NeedBrowsable { get diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/ResizeThumb.cs b/AIStudio.Wpf.DiagramDesigner/Controls/ResizeThumb.cs index 2967e6f..9a63810 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/ResizeThumb.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/ResizeThumb.cs @@ -17,7 +17,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls base.DragCompleted += ResizeThumb_DragCompleted; } - private List designerItems; + private List designerItems; IDiagramViewModel diagarmViewModel; private void ResizeThumb_DragStarted(object sender, DragStartedEventArgs e) @@ -26,7 +26,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls diagarmViewModel = designerItem.Parent; if (designerItem != null && designerItem.IsSelected) { - designerItems = designerItem.SelectedItems.ToList(); + designerItems = designerItem.Parent.SelectedItems.ToList(); foreach (DesignerItemViewModelBase item in designerItems.OfType()) { item.BeginDo = true; diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/RotateThumb.cs b/AIStudio.Wpf.DiagramDesigner/Controls/RotateThumb.cs index cdd388b..31e25ac 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/RotateThumb.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/RotateThumb.cs @@ -16,7 +16,6 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls private double initialAngle; private Canvas designerCanvas; private DesignerItemViewModelBase designerItem; - private RotateTransform rotateTransform; public RotateThumb() { @@ -25,7 +24,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls DragCompleted += RotateThumb_DragCompleted; } - private List designerItems; + private List designerItems; private void RotateThumb_DragStarted(object sender, DragStartedEventArgs e) { @@ -33,7 +32,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls if (this.designerItem != null) { - designerItems = designerItem.SelectedItems.ToList(); + designerItems = designerItem.Parent.SelectedItems.ToList(); foreach (DesignerItemViewModelBase item in designerItems.OfType()) { diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/ZoomBox.cs b/AIStudio.Wpf.DiagramDesigner/Controls/ZoomBox.cs index ee22e24..1ea8a26 100644 --- a/AIStudio.Wpf.DiagramDesigner/Controls/ZoomBox.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/ZoomBox.cs @@ -24,14 +24,14 @@ namespace AIStudio.Wpf.DiagramDesigner } public static readonly DependencyProperty ScrollViewerProperty = - DependencyProperty.Register("ScrollViewer", typeof(ScrollViewer), typeof(ZoomBox)); + DependencyProperty.Register(nameof(ScrollViewer), typeof(ScrollViewer), typeof(ZoomBox)); #endregion #region DesignerCanvas public static readonly DependencyProperty DesignerCanvasProperty = - DependencyProperty.Register("DesignerCanvas", typeof(DesignerCanvas), typeof(ZoomBox), + DependencyProperty.Register(nameof(DesignerCanvas), typeof(DesignerCanvas), typeof(ZoomBox), new FrameworkPropertyMetadata(null, new PropertyChangedCallback(OnDesignerCanvasChanged))); diff --git a/AIStudio.Wpf.DiagramDesigner/Helpers/ControlMouseDoubleClickCommandBehavior.cs b/AIStudio.Wpf.DiagramDesigner/Helpers/ControlMouseDoubleClickCommandBehavior.cs index eefaf49..4d627ad 100644 --- a/AIStudio.Wpf.DiagramDesigner/Helpers/ControlMouseDoubleClickCommandBehavior.cs +++ b/AIStudio.Wpf.DiagramDesigner/Helpers/ControlMouseDoubleClickCommandBehavior.cs @@ -128,7 +128,7 @@ namespace AIStudio.Wpf.DiagramDesigner /// Identifies the dependency property /// public static readonly DependencyProperty CommandParameterProperty = DependencyProperty.Register( - "CommandParameter", typeof(object), typeof(ControlMouseDoubleClickCommandBehavior), + nameof(CommandParameter), typeof(object), typeof(ControlMouseDoubleClickCommandBehavior), new PropertyMetadata(null, (s, e) => { @@ -165,7 +165,7 @@ namespace AIStudio.Wpf.DiagramDesigner /// Identifies the dependency property /// public static readonly DependencyProperty CommandProperty = DependencyProperty.Register( - "Command", typeof(ICommand), typeof(ControlMouseDoubleClickCommandBehavior), + nameof(Command), typeof(ICommand), typeof(ControlMouseDoubleClickCommandBehavior), new PropertyMetadata(null, (s, e) => OnCommandChanged(s as ControlMouseDoubleClickCommandBehavior, e))); diff --git a/AIStudio.Wpf.DiagramDesigner/Helpers/ControlMouseLeftButtonDownCommandBehavior.cs b/AIStudio.Wpf.DiagramDesigner/Helpers/ControlMouseLeftButtonDownCommandBehavior.cs index f95b92c..6f7814d 100644 --- a/AIStudio.Wpf.DiagramDesigner/Helpers/ControlMouseLeftButtonDownCommandBehavior.cs +++ b/AIStudio.Wpf.DiagramDesigner/Helpers/ControlMouseLeftButtonDownCommandBehavior.cs @@ -125,7 +125,7 @@ namespace AIStudio.Wpf.DiagramDesigner /// Identifies the dependency property /// public static readonly DependencyProperty CommandParameterProperty = DependencyProperty.Register( - "CommandParameter", typeof(object), typeof(ControlMouseLeftButtonDownCommandBehavior), + nameof(CommandParameter), typeof(object), typeof(ControlMouseLeftButtonDownCommandBehavior), new PropertyMetadata(null, (s, e) => { @@ -162,7 +162,7 @@ namespace AIStudio.Wpf.DiagramDesigner /// Identifies the dependency property /// public static readonly DependencyProperty CommandProperty = DependencyProperty.Register( - "Command", typeof(ICommand), typeof(ControlMouseLeftButtonDownCommandBehavior), + nameof(Command), typeof(ICommand), typeof(ControlMouseLeftButtonDownCommandBehavior), new PropertyMetadata(null, (s, e) => OnCommandChanged(s as ControlMouseLeftButtonDownCommandBehavior, e))); diff --git a/AIStudio.Wpf.DiagramDesigner/Helpers/XmlSerializeHelper.cs b/AIStudio.Wpf.DiagramDesigner/Helpers/XmlSerializeHelper.cs index 357f4bf..f4c7cfb 100644 --- a/AIStudio.Wpf.DiagramDesigner/Helpers/XmlSerializeHelper.cs +++ b/AIStudio.Wpf.DiagramDesigner/Helpers/XmlSerializeHelper.cs @@ -32,7 +32,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Helpers return serializer.Deserialize(sr) as T; } } - catch (Exception ex) + catch (Exception) { return null; } diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableDesignerItemBase.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableDesignerItemBase.cs index b5ba795..af71cbb 100644 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableDesignerItemBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/SelectableDesignerItemBase.cs @@ -33,7 +33,7 @@ namespace AIStudio.Wpf.DiagramDesigner // FontItem = CopyHelper.Mapper(fontViewModel); //} - public SelectableDesignerItemBase(SelectableViewModelBase viewmodel) + public SelectableDesignerItemBase(SelectableDesignerItemViewModelBase viewmodel) { this.Id = viewmodel.Id; this.ZIndex = viewmodel.ZIndex; diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/DiagramServicesProvider.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/DiagramServicesProvider.cs index 59bebaf..418f7a8 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/DiagramServicesProvider.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/DiagramServicesProvider.cs @@ -13,7 +13,7 @@ namespace AIStudio.Wpf.DiagramDesigner IDrawModeViewModel DrawModeViewModel { get; } IQuickThemeViewModel QuickThemeViewModel { get; } ILockObjectViewModel LockObjectViewModel { get; } - SelectableViewModelBase SelectedItem { get; set; } + SelectableDesignerItemViewModelBase SelectedItem { get; set; } IColorViewModel CopyDefaultColorViewModel(); IFontViewModel CopyDefaultFontViewModel(); } @@ -132,8 +132,8 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private SelectableViewModelBase _selectedItem; - public SelectableViewModelBase SelectedItem + private SelectableDesignerItemViewModelBase _selectedItem; + public SelectableDesignerItemViewModelBase SelectedItem { get { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorViewModel.cs index 2641d89..bf30229 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectorViewModel.cs @@ -13,7 +13,7 @@ using SvgPathProperties; namespace AIStudio.Wpf.DiagramDesigner { - public class ConnectorViewModel : SelectableViewModelBase + public class ConnectorViewModel : SelectableDesignerItemViewModelBase { public ConnectorViewModel(IDiagramViewModel parent, FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo, DrawMode drawMode, RouterMode routerMode) { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs index 27f9c94..f658ad5 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs @@ -11,7 +11,7 @@ using AIStudio.Wpf.DiagramDesigner.Geometrys; namespace AIStudio.Wpf.DiagramDesigner { - public abstract class DesignerItemViewModelBase : SelectableViewModelBase + public abstract class DesignerItemViewModelBase : SelectableDesignerItemViewModelBase { public DesignerItemViewModelBase() : base() { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs index b55e145..f4a7e4d 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs @@ -452,7 +452,7 @@ namespace AIStudio.Wpf.DiagramDesigner { if (e.OldItems != null) { - foreach (var item in e.OldItems.OfType()) + foreach (var item in e.OldItems.OfType()) { item.PropertyChanged -= Item_PropertyChanged; item.Dispose(); @@ -460,7 +460,7 @@ namespace AIStudio.Wpf.DiagramDesigner } if (e.NewItems != null) { - foreach (var item in e.NewItems.OfType()) + foreach (var item in e.NewItems.OfType()) { item.PropertyChanged += Item_PropertyChanged; } @@ -675,9 +675,9 @@ namespace AIStudio.Wpf.DiagramDesigner } - public ObservableCollection Items { get; set; } = new ObservableCollection(); + public ObservableCollection Items { get; set; } = new ObservableCollection(); - public List SelectedItems + public List SelectedItems { get { @@ -698,13 +698,13 @@ namespace AIStudio.Wpf.DiagramDesigner } } - public Func OutAddVerify + public Func OutAddVerify { get; set; } - public bool AddVerify(SelectableViewModelBase item) + public bool AddVerify(SelectableDesignerItemViewModelBase item) { if (item.InitData() == false) return false; @@ -722,14 +722,14 @@ namespace AIStudio.Wpf.DiagramDesigner private void ExecuteDirectAddItemCommand(object parameter) { - if (parameter is SelectableViewModelBase ite) + if (parameter is SelectableDesignerItemViewModelBase ite) { if (AddVerify(ite) != true) return; ClearSelectedItems(); Add(ite); } - else if (parameter is List items) + else if (parameter is List items) { if (items.Select(p => AddVerify(p)).Any() != true) return; @@ -741,7 +741,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private void Add(SelectableViewModelBase item) + private void Add(SelectableDesignerItemViewModelBase item) { item.Parent = this; item.ZIndex = Items.Count; @@ -768,7 +768,7 @@ namespace AIStudio.Wpf.DiagramDesigner private void ExecuteAddItemCommand(object parameter) { - if (parameter is SelectableViewModelBase ite) + if (parameter is SelectableDesignerItemViewModelBase ite) { if (AddVerify(ite) != true) return; @@ -781,7 +781,7 @@ namespace AIStudio.Wpf.DiagramDesigner Items.Remove(ite); }); } - else if (parameter is List items) + else if (parameter is List items) { if (items.Select(p => AddVerify(p)).Any() != true) return; @@ -801,47 +801,34 @@ namespace AIStudio.Wpf.DiagramDesigner private void ExecuteDirectRemoveItemCommand(object parameter) { - if (parameter is SelectableViewModelBase ite) + if (parameter is SelectableDesignerItemViewModelBase ite) { ite.IsSelected = false; Items.Remove(ite); - if (ite.OutTextItem != null) - { - Items.Remove(ite.OutTextItem); - } } - else if (parameter is List items) + else if (parameter is List items) { foreach (var item in items) { item.IsSelected = false; Items.Remove(item); - if (item.OutTextItem != null) - { - Items.Remove(item.OutTextItem); - } } } } private void ExecuteRemoveItemCommand(object parameter) { - if (parameter is SelectableViewModelBase ite) + if (parameter is SelectableDesignerItemViewModelBase ite) { DoCommandManager.DoNewCommand(this.ToString(), () => { ite.IsSelected = false; Items.Remove(ite); - if (ite.OutTextItem != null) - { - Items.Remove(ite.OutTextItem); - } - }, () => { Items.Add(ite); }); } - else if (parameter is List items) + else if (parameter is List items) { DoCommandManager.DoNewCommand(this.ToString(), () => { @@ -849,10 +836,6 @@ namespace AIStudio.Wpf.DiagramDesigner { item.IsSelected = false; Items.Remove(item); - if (item.OutTextItem != null) - { - Items.Remove(item.OutTextItem); - } } }, @@ -860,10 +843,6 @@ namespace AIStudio.Wpf.DiagramDesigner foreach (var item in items) { Items.Add(item); - if (item.OutTextItem != null) - { - Items.Add(item.OutTextItem); - } } }); @@ -1078,9 +1057,9 @@ namespace AIStudio.Wpf.DiagramDesigner private void ExecuteBringForwardCommand(object parameter) { - List ordered = SelectedItems.OrderByDescending(p => p.ZIndex).ToList(); + List ordered = SelectedItems.OrderByDescending(p => p.ZIndex).ToList(); - List changeditems = new List(); + List changeditems = new List(); var guid = Guid.NewGuid(); DoCommandManager.DoNewCommand(this.ToString(), @@ -1097,7 +1076,7 @@ namespace AIStudio.Wpf.DiagramDesigner item.ZIndex = newIndex; changeditems.Add(item); - IEnumerable it = this.Items.Where(p => p.ZIndex == newIndex); + IEnumerable it = this.Items.Where(p => p.ZIndex == newIndex); foreach (var elm in it) { @@ -1127,10 +1106,10 @@ namespace AIStudio.Wpf.DiagramDesigner } private void ExecuteBringToFrontCommand(object parameter) { - List selectionSorted = SelectedItems.OrderByDescending(p => p.ZIndex).ToList(); - List childrenSorted = Items.OrderByDescending(p => p.ZIndex).ToList(); + List selectionSorted = SelectedItems.OrderByDescending(p => p.ZIndex).ToList(); + List childrenSorted = Items.OrderByDescending(p => p.ZIndex).ToList(); - List changeditems = new List(); + List changeditems = new List(); var guid = Guid.NewGuid(); DoCommandManager.DoNewCommand(this.ToString(), @@ -1138,7 +1117,7 @@ namespace AIStudio.Wpf.DiagramDesigner int i = childrenSorted.Count - 1; int j = childrenSorted.Count - selectionSorted.Count - 1; - foreach (SelectableViewModelBase item in childrenSorted) + foreach (SelectableDesignerItemViewModelBase item in childrenSorted) { item.SetOldValue(item.ZIndex, nameof(item.ZIndex), guid.ToString()); if (selectionSorted.Contains(item)) @@ -1167,10 +1146,10 @@ namespace AIStudio.Wpf.DiagramDesigner } private void ExecuteSendBackwardCommand(object parameter) { - List ordered = this.SelectedItems.OrderBy(p => p.ZIndex).ToList(); + List ordered = this.SelectedItems.OrderBy(p => p.ZIndex).ToList(); int count = this.Items.Count; - List changeditems = new List(); + List changeditems = new List(); var guid = Guid.NewGuid(); DoCommandManager.DoNewCommand(this.ToString(), @@ -1185,7 +1164,7 @@ namespace AIStudio.Wpf.DiagramDesigner item.SetOldValue(item.ZIndex, nameof(item.ZIndex), guid.ToString()); item.ZIndex = newIndex; changeditems.Add(item); - IEnumerable it = this.Items.Where(p => p.ZIndex == newIndex); + IEnumerable it = this.Items.Where(p => p.ZIndex == newIndex); foreach (var elm in it) { @@ -1216,10 +1195,10 @@ namespace AIStudio.Wpf.DiagramDesigner } private void ExecuteSendToBackCommand(object parameter) { - List selectionSorted = SelectedItems.OrderByDescending(p => p.ZIndex).ToList(); - List childrenSorted = Items.OrderByDescending(p => p.ZIndex).ToList(); + List selectionSorted = SelectedItems.OrderByDescending(p => p.ZIndex).ToList(); + List childrenSorted = Items.OrderByDescending(p => p.ZIndex).ToList(); - List changeditems = new List(); + List changeditems = new List(); var guid = Guid.NewGuid(); DoCommandManager.DoNewCommand(this.ToString(), @@ -1227,7 +1206,7 @@ namespace AIStudio.Wpf.DiagramDesigner int i = childrenSorted.Count - 1; int j = selectionSorted.Count - 1; - foreach (SelectableViewModelBase item in childrenSorted) + foreach (SelectableDesignerItemViewModelBase item in childrenSorted) { item.SetOldValue(item.ZIndex, nameof(item.ZIndex), guid.ToString()); if (selectionSorted.Contains(item)) @@ -1406,16 +1385,6 @@ namespace AIStudio.Wpf.DiagramDesigner } } - //连线上的文本 - foreach (var selectedConnection in selectedConnections) - { - if (selectedConnection.OutTextItem != null) - { - selectedDesignerItems.Add(selectedConnection.OutTextItem); - } - } - - string json = new SerializableObject { DesignerItems = selectedDesignerItems.Select(p => p.ToSerializabObject()).Where(p => p != null).ToList(), @@ -1438,7 +1407,7 @@ namespace AIStudio.Wpf.DiagramDesigner return; try { - List items = new List(); + List items = new List(); SerializableObject copyitem = JsonConvert.DeserializeObject(clipboardData); @@ -1469,7 +1438,7 @@ namespace AIStudio.Wpf.DiagramDesigner OffsetX += 10; OffsetY += 10; - List connectors = new List(); + List connectors = new List(); foreach (var connection in copyitem.Connections) { var connectionItem = JsonConvert.DeserializeObject(connection.ObjectJson); @@ -1491,12 +1460,6 @@ namespace AIStudio.Wpf.DiagramDesigner ConnectorViewModel connectionVM = new ConnectorViewModel(this, sourceConnectorInfo, sinkConnectorInfo, connectionItem); connectors.Add(connectionVM); - - DesignerItemViewModelBase textItem = items.OfType().FirstOrDefault(x => x.ParentId == connectionItem.Id); - if (textItem != null) - { - connectionVM.OutTextItem = textItem; - } } DirectAddItemCommand.Execute(connectors); @@ -1550,7 +1513,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private bool ItemsToDeleteHasConnector(List itemsToRemove, ConnectorInfoBase connector) + private bool ItemsToDeleteHasConnector(List itemsToRemove, ConnectorInfoBase connector) { if (connector is FullyCreatedConnectorInfo fully) { @@ -1571,8 +1534,8 @@ namespace AIStudio.Wpf.DiagramDesigner private void ExecuteDeleteCommand(object parameter) { - List itemsToRemove = SelectedItems.OfType().ToList(); - List connectionsToAlsoRemove = new List(); + List itemsToRemove = SelectedItems.OfType().ToList(); + List connectionsToAlsoRemove = new List(); foreach (var connector in Items.OfType()) { @@ -1744,7 +1707,7 @@ namespace AIStudio.Wpf.DiagramDesigner public void UpdateZIndex() { - List ordered = Items.OrderBy(p => p.ZIndex).ToList(); + List ordered = Items.OrderBy(p => p.ZIndex).ToList(); for (int i = 0; i < ordered.Count; i++) diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableDesignerItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableDesignerItemViewModelBase.cs new file mode 100644 index 0000000..8befe8b --- /dev/null +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableDesignerItemViewModelBase.cs @@ -0,0 +1,165 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Windows.Input; +using System.Windows.Media; +using AIStudio.Wpf.DiagramDesigner.Models; +using Newtonsoft.Json; + +namespace AIStudio.Wpf.DiagramDesigner +{ + + public interface ISelectItems + { + SimpleCommand SelectItemCommand + { + get; + } + } + + + public abstract class SelectableDesignerItemViewModelBase : SelectableViewModelBase, ISelectItems, ISelectable, IGroupable + { + + public SelectableDesignerItemViewModelBase():base() + { + + } + + public SelectableDesignerItemViewModelBase(IDiagramViewModel parent, SelectableDesignerItemBase designer):base(parent, designer) + { + + } + + public SelectableDesignerItemViewModelBase(IDiagramViewModel parent, string json) : base(parent, json) + { + + } + + protected override void Init() + { + base.Init(); + + SelectItemCommand = new SimpleCommand(ExecuteSelectItemCommand); + EditCommand = new SimpleCommand(ExecuteEditCommand); + } + + public virtual bool InitData() + { + return true; + } + public virtual bool EditData() + { + return true; + } + + public SimpleCommand SelectItemCommand + { + get; private set; + } + public ICommand EditCommand + { + get; private set; + } + + private string _text; + [Browsable(true)] + [CanDo] + public override string Text + { + get + { + var text = _text; + if (FontViewModel.FontCase == FontCase.Upper) + { + return text?.ToUpper(); + } + else if (FontViewModel.FontCase == FontCase.Lower) + { + return text?.ToLower(); + } + else + { + return text; + } + } + set + { + if (SetProperty(ref _text, value)) + { + if (!string.IsNullOrEmpty(_text)) + { + ShowText = true; + } + } + } + } + + private bool _isReadOnlyText = false; + public bool IsReadOnlyText + { + get + { + if (IsReadOnly) + return true; + return _isReadOnlyText; + } + set + { + SetProperty(ref _isReadOnlyText, value); + } + } + + private bool _showText; + public virtual bool ShowText + { + get + { + return _showText; + } + set + { + SetProperty(ref _showText, value); + } + } + + private void ExecuteSelectItemCommand(object param) + { + SelectItem((bool)param, !IsSelected); + } + + private void SelectItem(bool newselect, bool select) + { + if (newselect) + { + foreach (var designerItemViewModelBase in Parent.SelectedItems.ToList()) + { + designerItemViewModelBase._isSelected = false; + } + } + + IsSelected = select; + } + + public override void AddToSelection(bool selected) + { + foreach (SelectableDesignerItemViewModelBase item in Parent.SelectedItems.ToList()) + item.IsSelected = false; + + Parent.SelectedItems.Clear(); + if (selected == true) + { + Parent.SelectionService.AddToSelection(this); + } + } + + protected virtual void ExecuteEditCommand(object param) + { + if (IsReadOnly == true) return; + + ShowText = true; + } + } +} diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs index c4ea601..7bace74 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs @@ -10,19 +10,9 @@ using Newtonsoft.Json; namespace AIStudio.Wpf.DiagramDesigner { - - public interface ISelectItems + public abstract class SelectableViewModelBase : BindableBase, ISelectable { - SimpleCommand SelectItemCommand - { - get; - } - } - - - public abstract class SelectableViewModelBase : BindableBase, ISelectItems, ISelectable, IGroupable - { - private IDiagramServiceProvider _service + protected IDiagramServiceProvider _service { get { @@ -80,8 +70,6 @@ namespace AIStudio.Wpf.DiagramDesigner FontViewModel = _service.CopyDefaultFontViewModel(); LockObjectViewModel = new LockObjectViewModel(); - SelectItemCommand = new SimpleCommand(ExecuteSelectItemCommand); - EditCommand = new SimpleCommand(ExecuteEditCommand); } protected virtual void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase) @@ -98,36 +86,10 @@ namespace AIStudio.Wpf.DiagramDesigner FontViewModel = CopyHelper.Mapper(designerbase.FontItem); } - public virtual bool InitData() - { - return true; - } - public virtual bool EditData() - { - return true; - } - - public List SelectedItems - { - //todo - get - { - return Parent.SelectedItems; - } - } - public IDiagramViewModel Parent { get; set; } - public SimpleCommand SelectItemCommand - { - get; private set; - } - public ICommand EditCommand - { - get; private set; - } public Guid Id { get; set; @@ -145,19 +107,15 @@ namespace AIStudio.Wpf.DiagramDesigner SetProperty(ref _parentId, value); } } - public SelectableViewModelBase ParentItem - { - get; set; - } public bool IsGroup { get; set; } - private bool _isSelected; + protected bool _isSelected; [Browsable(false)] - public bool IsSelected + public virtual bool IsSelected { get { @@ -165,24 +123,7 @@ namespace AIStudio.Wpf.DiagramDesigner } set { - if (SetProperty(ref _isSelected, value)) - { - //如果没有文字,失去焦点自动清除 - if (_isSelected == false && string.IsNullOrEmpty(Text)) - { - ShowText = false; - if (this is TextDesignerItemViewModel) - { - if (ParentItem != null) - { - ParentItem.OutTextItem = null; - } - Parent.DirectRemoveItemCommand.Execute(this); - } - } - - } - + SetProperty(ref _isSelected, value); } } @@ -271,19 +212,14 @@ namespace AIStudio.Wpf.DiagramDesigner get; set; } - private string _text; [Browsable(true)] [CanDo] - public string Text + public virtual string Text { get { var text = _text; - if (OutTextItem != null) - { - text = OutTextItem._text; - } if (FontViewModel.FontCase == FontCase.Upper) { return text?.ToUpper(); @@ -299,81 +235,17 @@ namespace AIStudio.Wpf.DiagramDesigner } set { - if (OutTextItem != null) + if (SetProperty(ref _text, value)) { - OutTextItem.Text = value; - } - else if (SetProperty(ref _text, value)) - { - if (!string.IsNullOrEmpty(_text)) - { - ShowText = true; - } + } } } - private bool _isReadOnlyText = false; - public bool IsReadOnlyText + + public virtual void AddToSelection(bool selected) { - get - { - if (IsReadOnly) - return true; - return _isReadOnlyText; - } - set - { - SetProperty(ref _isReadOnlyText, value); - } - } - private bool _showText; - public virtual bool ShowText - { - get - { - return _showText; - } - set - { - SetProperty(ref _showText, value); - } - } - - public DesignerItemViewModelBase OutTextItem - { - get; set; - } - - private void ExecuteSelectItemCommand(object param) - { - SelectItem((bool)param, !IsSelected); - } - - private void SelectItem(bool newselect, bool select) - { - if (newselect) - { - foreach (var designerItemViewModelBase in Parent.SelectedItems.ToList()) - { - designerItemViewModelBase._isSelected = false; - } - } - - IsSelected = select; - } - - public void AddToSelection(bool selected) - { - foreach (SelectableViewModelBase item in Parent.SelectedItems.ToList()) - item.IsSelected = false; - - Parent.SelectedItems.Clear(); - if (selected == true) - { - Parent.SelectionService.AddToSelection(this); - } } private void FontViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) @@ -384,13 +256,6 @@ namespace AIStudio.Wpf.DiagramDesigner } } - protected virtual void ExecuteEditCommand(object param) - { - if (IsReadOnly == true) return; - - ShowText = true; - } - public virtual void Dispose() { } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs index e74189c..b6d6a6a 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs @@ -15,11 +15,11 @@ namespace AIStudio.Wpf.DiagramDesigner { get; set; } - List SelectedItems + List SelectedItems { get; } - ObservableCollection Items + ObservableCollection Items { get; } @@ -183,7 +183,7 @@ namespace AIStudio.Wpf.DiagramDesigner get; } - Func OutAddVerify + Func OutAddVerify { get; set; } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs index 8196892..43737c8 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner { public class GifImageItemViewModel : DesignerItemViewModelBase { - private IDisposable propertyChangedSubscription; - private IDisposable connectorsChangedSubscription; + //private IDisposable propertyChangedSubscription; + //private IDisposable connectorsChangedSubscription; public SimpleCommand AddItemCommand { get; private set; } @@ -54,7 +54,7 @@ namespace AIStudio.Wpf.DiagramDesigner ClearConnectors(); //propertyChangedSubscription = WhenPropertyChanged.Where(o => o.ToString() == "Left" || o.ToString() == "Top" || o.ToString() == "ItemWidth" || o.ToString() == "ItemHeight").Subscribe(ChangeImageElement); - connectorsChangedSubscription = WhenConnectorsChanged.Subscribe(OnConnectorsChanged); + //connectorsChangedSubscription = WhenConnectorsChanged.Subscribe(OnConnectorsChanged); BuildMenuOptions(); } @@ -127,33 +127,33 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private void OnConnectorsChanged(NotifyCollectionChangedEventArgs args) - { - if (args.Action == NotifyCollectionChangedAction.Add) - { - if (args.NewItems.Count > 0) - { - foreach (var item in args.NewItems) - { + //private void OnConnectorsChanged(NotifyCollectionChangedEventArgs args) + //{ + // if (args.Action == NotifyCollectionChangedAction.Add) + // { + // if (args.NewItems.Count > 0) + // { + // foreach (var item in args.NewItems) + // { - } - } - } - else if (args.Action == NotifyCollectionChangedAction.Remove) - { - if (args.OldItems.Count > 0) - { - foreach (var item in args.OldItems) - { + // } + // } + // } + // else if (args.Action == NotifyCollectionChangedAction.Remove) + // { + // if (args.OldItems.Count > 0) + // { + // foreach (var item in args.OldItems) + // { - } - } - } - else if (args.Action == NotifyCollectionChangedAction.Reset) - { + // } + // } + // } + // else if (args.Action == NotifyCollectionChangedAction.Reset) + // { - } - } + // } + //} } }