@@ -1204,25 +1204,32 @@ private void UpdateDynamicStrokeThickness()
12041204 /// </summary>
12051205 public override void Dispose ( )
12061206 {
1207- model . PropertyChanged -= HandleConnectorPropertyChanged ;
1207+ if ( model != null )
1208+ {
1209+ model . PropertyChanged -= HandleConnectorPropertyChanged ;
1210+
1211+ model . Start . PropertyChanged -= StartPortModel_PropertyChanged ;
1212+ model . End . PropertyChanged -= EndPortModel_PropertyChanged ;
12081213
1209- model . Start . PropertyChanged -= StartPortModel_PropertyChanged ;
1210- model . End . PropertyChanged -= EndPortModel_PropertyChanged ;
1214+ model . Start . Owner . PropertyChanged -= StartOwner_PropertyChanged ;
1215+ model . End . Owner . PropertyChanged -= EndOwner_PropertyChanged ;
1216+ model . ConnectorPinModels . CollectionChanged -= ConnectorPinModelCollectionChanged ;
12111217
1212- model . Start . Owner . PropertyChanged -= StartOwner_PropertyChanged ;
1213- model . End . Owner . PropertyChanged -= EndOwner_PropertyChanged ;
1214- model . ConnectorPinModels . CollectionChanged -= ConnectorPinModelCollectionChanged ;
1218+ // Nodevm and NodeEnd props are found via model
1219+ if ( Nodevm != null )
1220+ {
1221+ Nodevm . PropertyChanged -= nodeViewModel_PropertyChanged ;
1222+ }
1223+ if ( NodeEnd != null )
1224+ {
1225+ NodeEnd . PropertyChanged -= nodeEndViewModel_PropertyChanged ;
1226+ }
1227+ }
1228+
1229+ workspaceViewModel . PropertyChanged -= WorkspaceViewModel_PropertyChanged ;
12151230
12161231 workspaceViewModel . DynamoViewModel . PropertyChanged -= DynamoViewModel_PropertyChanged ;
12171232 workspaceViewModel . DynamoViewModel . Model . PreferenceSettings . PropertyChanged -= DynamoViewModel_PropertyChanged ;
1218- if ( Nodevm != null )
1219- {
1220- Nodevm . PropertyChanged -= nodeViewModel_PropertyChanged ;
1221- }
1222- if ( NodeEnd != null )
1223- {
1224- NodeEnd . PropertyChanged -= nodeEndViewModel_PropertyChanged ;
1225- }
12261233
12271234 if ( ConnectorPinViewCollection != null )
12281235 {
@@ -1235,16 +1242,14 @@ public override void Dispose()
12351242 }
12361243 }
12371244
1238- workspaceViewModel . PropertyChanged -= WorkspaceViewModel_PropertyChanged ;
1239-
12401245 this . PropertyChanged -= ConnectorViewModelPropertyChanged ;
12411246 DiscardAllConnectorPinModels ( ) ;
12421247
1243- if ( ConnectorContextMenuViewModel != null )
1248+ if ( ConnectorContextMenuViewModel != null )
12441249 {
12451250 ConnectorContextMenuViewModel . Dispose ( ) ;
12461251 }
1247- if ( ConnectorAnchorViewModel != null )
1252+ if ( ConnectorAnchorViewModel != null )
12481253 {
12491254 ConnectorAnchorViewModel . Dispose ( ) ;
12501255 }
0 commit comments