1414using System . Collections . Generic ;
1515using System . Windows . Controls ;
1616using System . Windows . Media ;
17+ using DynamicData ;
1718
1819namespace SimpleStateMachineNodeEditor . ViewModel
1920{
2021 public partial class ViewModelNodesCanvas : ReactiveObject
2122 {
2223 public ObservableCollectionExtended < ViewModelConnect > Connects = new ObservableCollectionExtended < ViewModelConnect > ( ) ;
2324
24- public ObservableCollectionExtended < ViewModelNode > Nodes = new ObservableCollectionExtended < ViewModelNode > ( ) ;
25+ //public ObservableCollectionExtended<ViewModelNode> Nodes = new ObservableCollectionExtended<ViewModelNode>();
26+ public SourceList < ViewModelNode > Nodes = new SourceList < ViewModelNode > ( ) ;
27+ public ObservableCollectionExtended < ViewModelNode > Nodes2 = new ObservableCollectionExtended < ViewModelNode > ( ) ;
2528 public ObservableCollectionExtended < ViewModelMessage > Messages { get ; set ; } = new ObservableCollectionExtended < ViewModelMessage > ( ) ;
2629
2730 [ Reactive ] public Point PositionRight { get ; set ; }
@@ -46,14 +49,16 @@ public partial class ViewModelNodesCanvas : ReactiveObject
4649 [ Reactive ] public bool WithoutMessages { get ; set ; }
4750 [ Reactive ] public Themes Theme { get ; set ; } = Themes . Dark ;
4851
52+
53+
4954 static Dictionary < Themes , string > themesPaths = new Dictionary < Themes , string > ( )
5055 {
5156 { Themes . Dark , @"Styles\Themes\Dark.xaml" } ,
5257 { Themes . Light , @"Styles\Themes\Light.xaml" } ,
5358 } ;
5459
5560 public int NodesCount = 0 ;
56- public int TransitionsCount = 1 ;
61+ public int TransitionsCount = 0 ;
5762 public double ScaleMax = 5 ;
5863 public double ScaleMin = 0.1 ;
5964 public double Scales { get ; set ; } = 0.05 ;
@@ -62,6 +67,7 @@ public partial class ViewModelNodesCanvas : ReactiveObject
6267 public ViewModelNodesCanvas ( )
6368 {
6469 Cutter = new ViewModelCutter ( this ) ;
70+ Nodes . Connect ( ) . ObserveOnDispatcher ( ) . Bind ( Nodes2 ) . Subscribe ( ) ;
6571 SetupCommands ( ) ;
6672 SetupSubscriptions ( ) ;
6773 SetupStartState ( ) ;
@@ -80,7 +86,7 @@ private void SetupSubscriptions()
8086
8187 private void SetupStartState ( )
8288 {
83- string name = Nodes . Any ( x => x . Name == "Start" ) ? GetNameForNewNode ( ) : "Start" ;
89+ string name = Nodes . Items . Any ( x => x . Name == "Start" ) ? GetNameForNewNode ( ) : "Start" ;
8490 StartState = new ViewModelNode ( this , name , new Point ( ) ) ;
8591 SetAsStart ( StartState ) ;
8692 Nodes . Add ( StartState ) ;
0 commit comments