@@ -130,7 +130,7 @@ public ClassNode SelectedClass
130130 selectedClass = value ;
131131 if ( selectedClass != null )
132132 {
133- classesTreeView . SelectedNode = FindMainClassTreeNode ( value ) ;
133+ classesTreeView . SelectedNode = FindMainClassTreeNode ( selectedClass ) ;
134134 }
135135
136136 SelectionChanged ? . Invoke ( this , selectedClass ) ;
@@ -335,6 +335,8 @@ private void AddClassInternal(ClassNode node)
335335 /// <param name="node">The class to remove.</param>
336336 public void RemoveClass ( ClassNode node )
337337 {
338+ Contract . Requires ( node != null ) ;
339+
338340 foreach ( var tn in FindClassTreeNodes ( node ) )
339341 {
340342 tn . Remove ( ) ;
@@ -358,6 +360,8 @@ public void RemoveClass(ClassNode node)
358360 /// <returns>The found class tree node.</returns>
359361 private ClassTreeNode FindMainClassTreeNode ( ClassNode node )
360362 {
363+ Contract . Requires ( node != null ) ;
364+
361365 return root . Nodes
362366 . Cast < ClassTreeNode > ( )
363367 . FirstOrDefault ( t => t . ClassNode == node ) ;
@@ -368,6 +372,8 @@ private ClassTreeNode FindMainClassTreeNode(ClassNode node)
368372 /// <returns>The found class tree node.</returns>
369373 private IEnumerable < ClassTreeNode > FindClassTreeNodes ( ClassNode node )
370374 {
375+ Contract . Requires ( node != null ) ;
376+
371377 return root . Nodes
372378 . Cast < ClassTreeNode > ( )
373379 . Traverse ( t => t . Nodes . Cast < ClassTreeNode > ( ) )
@@ -376,10 +382,18 @@ private IEnumerable<ClassTreeNode> FindClassTreeNodes(ClassNode node)
376382
377383 public void UpdateClassNode ( ClassNode node )
378384 {
385+ Contract . Requires ( node != null ) ;
386+
387+ classesTreeView . BeginUpdate ( ) ;
388+
379389 foreach ( var tn in FindClassTreeNodes ( node ) )
380390 {
381391 tn . Update ( ) ;
382392 }
393+
394+ classesTreeView . Sort ( ) ;
395+
396+ classesTreeView . EndUpdate ( ) ;
383397 }
384398 }
385399}
0 commit comments