private void AddElement(object sender, RoutedEventArgs e) { Button b = (Button)sender; string type = b.DataContext as string; int next = 1; var w = new Window(); DataVertex.TypeOfVertex typeOfVertex; switch (type) { case "R": typeOfVertex = DataVertex.TypeOfVertex.REGULATOR_VERTEX; break; case "T": typeOfVertex = DataVertex.TypeOfVertex.TRANSFORMER_VERTEX; break; case "SL": typeOfVertex = DataVertex.TypeOfVertex.SPOT_LOAD_VERTEX; break; default: typeOfVertex = DataVertex.TypeOfVertex.REGULAR; break; } if (auto_generate_id.IsChecked == true) { next = last_added_id; while (mainWindow.GlobalVertices.ContainsKey((next).ToString())) { last_added_id = last_added_id + 1; next++; } (this.DataContext as GraphViewModel).CreateDataVertexBase(typeOfVertex, next.ToString()); } else { w = new NodeID(mainWindow, typeOfVertex); w.Show(); } }