private void OnDeleteScaleUnit(object sender, RoutedEventArgs e) { var delScaleUnit = (sender as FrameworkElement).DataContext as ScaleUnit; var mf = MachineFunctions.FirstOrDefault(_ => _.ScaleUnits.Contains(delScaleUnit)); if (mf != null) { mf.ScaleUnits.Remove(delScaleUnit); foreach (var scaleUnit in mf.ScaleUnits) { scaleUnit.Index = mf.ScaleUnits.IndexOf(scaleUnit); } } }