bool guard = false; // to prevent reentrancy void FigureExplorer_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (guard) { return; } guard = true; foreach (var deselected in e.RemovedItems) { IFigure deselectedFigure = deselected as IFigure; if (deselectedFigure != null) { deselectedFigure.Selected = false; } } foreach (var selected in e.AddedItems) { IFigure selectedFigure = selected as IFigure; if (selectedFigure != null) { selectedFigure.Selected = true; } } CurrentDrawing.RaiseSelectionChanged(CurrentDrawing.GetSelectedFigures()); guard = false; }
private void FigureItems_SelectionChanged(object sender, SelectionChangedEventArgs e) { var selected = FigureItems.SelectedItem; IFigure selectedFigure = selected as IFigure; if (selectedFigure != null) { selectedFigure.Selected = true; } pg.Show(selectedFigure, CurrentDrawing.ActionManager); //FigureItems.SelectedValue = selectedFigure; CurrentDrawing.RaiseSelectionChanged(CurrentDrawing.GetSelectedFigures()); }