Browse Source

Fix for crash in SharpTreeView.flattener_CollectionChanged() when no items can be selected.

pull/80/head
Andreas Weizel 13 years ago
parent
commit
670087f732
  1. 5
      src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeView.cs

5
src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeView.cs

@ -152,10 +152,11 @@ namespace ICSharpCode.TreeView
var list = SelectedItems.Cast<SharpTreeNode>().Except(selectedOldItems).ToList(); var list = SelectedItems.Cast<SharpTreeNode>().Except(selectedOldItems).ToList();
SetSelectedItems(list); SetSelectedItems(list);
if (SelectedItem == null && this.IsKeyboardFocusWithin) { if (SelectedItem == null && this.IsKeyboardFocusWithin) {
// if we removed all selected nodes, then move the focus to the node // if we removed all selected nodes, then move the focus to the node
// preceding the first of the old selected nodes // preceding the first of the old selected nodes
SelectedIndex = Math.Max(0, e.OldStartingIndex - 1); SelectedIndex = Math.Max(0, e.OldStartingIndex - 1);
FocusNode((SharpTreeNode)SelectedItem); if (SelectedIndex >= 0)
FocusNode((SharpTreeNode)SelectedItem);
} }
} }
} }

Loading…
Cancel
Save